【发布时间】:2020-05-02 11:48:01
【问题描述】:
这不是关于代码的问题,而是关于理论的问题。
我之前有这个代码:
void handler(int signal){
printf("Handler called\n");
}
struct sigaction act;
act.sa_handler = &handler;
act.sa_flags = 0;
if (sigaction(SIGINT, &act, NULL) < 0){
exit(1);
}
if (sigaction(SIGQUIT, &act, NULL) < 0){
exit(1);
}
当我按下ctrl + C 时,处理程序被调用,但程序仍然退出。
现在,出于好奇,我尝试将标志更改为SA_RESTART。现在它没有退出。
为什么?
【问题讨论】: