私はctrl-cシグナルのシグナルハンドラを使用しています。アプリケーションを終了する代わりにctrl-cシグナルが生成されるたびに、何らかのアクションを実行します。ctrl-cのシグナルハンドラを使用する - 無限ループの助けが必要
while(1)ループ(任意のエラー条件)によってアプリケーションがハングアップした場合、その場合にのみアプリケーションを終了することができますか?
例:
void handle()
{
/*do some action*/
----
----
---
if (while(1) detected)
{
exit(0);
}
}
main()
{
struct sigaction myhandle;
myhandle.sa_handler = handle;
sigemptyset(&myhandle.sa_mask);
myhandle.sa_flags = 0;
sigaction(SIGINT, &myhandle, NULL);
while(1);
}
おかげ
1)シグナルハンドラの宣言/定義/シグネチャが間違っている、 'void handle(int signum);' 2 ''参照2 'siglongjmp' – wildplasser