1

これはプログラムの要点です:

while(true)
{
//bunch of codes that gets data from port ,
//if there is no data it waits here .

}

私は linux を使用しています。 Ctrl+C のようなキープレスの組み込みサポートはありますか。私はそれを使用してキャッチできます signal(SIGINT, signal_callback_handler);が、Ctrl + Cにはエラーが発生するため、いくつかの問題があります。

キープレスでこのループから抜け出したいのですが、これは可能ですか? はいの場合、その方法。

4

3 に答える 3

0

プログラムを終了できる関数はですexit()

シクルの早期終了を入力するには、を使用できますbreak

C指向のソリューションを使用する場合は、この質問を参照することをお勧めします。

Linuxに厳密に関連するものについては、おそらく、exit関数と組み合わせてncursesライブラリを参照する必要があります。

また、特定のキーの組み合わせが終端に等しいと想定しないでください。多くの端末は実際の端末ではなくエミュレーターであり、多くのエミュレーターはOSの作成者とユーザーがカスタマイズできます。

于 2012-10-20T18:17:42.123 に答える
0
while(!_kbhit()){
    // do stuff here.
}

Windows で動作します。

于 2012-10-20T17:56:25.173 に答える
0

割り込みを通知できます

      #include <csignal>

      raise(SIGINT);

また

     raise(SIGABRT);
于 2012-10-20T18:02:20.133 に答える