Windows XP で mingw を使用してコードをコンパイルしました。子スレッドに SIGINT シグナルを送りたいのですが、"signal.h" のヘッダーファイルには "kill" 関数が含まれていません。関数 raise(SIGINT) はプログラムを終了します。機能するには kill(pid,SIGINT) を使用する必要がありますが、関数はありません。
質問する
2522 次
3 に答える
0
Win32関数TerminateProcessを見てください
于 2013-01-09T02:28:14.307 に答える
0
kill 関数は c 標準ライブラリの一部であり、指定されたシグナルをターゲット プロセスに送信するシステム コールを表します。mingw を使用すると、glibc ライブラリではなく gnulib を使用してコンパイルされるため、対応する gnulib 関数を確認する必要があります。
于 2013-01-09T02:41:33.407 に答える
0
mingw は Windows での kill をサポートしていません。SendMessage を他のスレッドのウィンドウに使用して、それを処理して正常に終了させることができます。非ウィンドウ アプリの場合、「子」スレッドとの通信メカニズムとしてイベント (CreateEvent / WaitForSingleObject) を使用します。
于 2013-01-09T03:52:46.367 に答える