【发布时间】:2012-04-20 08:37:03
【问题描述】:
我正在为 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: 查找man 2 siglongjmp
标签: c linux signals signal-handling