- 论坛徽章:
- 0
|
int main(int argc,int argv[])
{
struct sigaction newhandler;
sigset_t blocked;
void inthandler(int);
newhandler.sa_handler=inthandler;
newhandler.sa_flags=SA_RESETHAND;
sigemptyset(&blocked);
sigaddset(&blocked,SIGQUIT);
newhandler.sa_mask=blocked;
if (sigaction(SIGINT,&newhandler,NULL)==-1)
perror("sigaction");
else
while(1)
{
}
return 0;
}
void inthandler(int sig)
{
printf("Get the signal ;\n");
sleep(3);
} |
这是我在书上抄来的,做一个小小的练习。照我的想法,这段代码当第一次按ctrl+c时,输出“Get the signal ”,同时3秒内阻塞ctrl+\,当第二次按ctrl+c时,退出。但是我试下来,“Get the signal ”没有输出,其他倒是对的。请教各位为什么,谢谢了。
[ 本帖最后由 waternie 于 2008-9-4 10:50 编辑 ] |
|