【发布时间】:2011-12-10 10:19:17
【问题描述】:
在学习 signal() 系统调用时,我应该会遇到以下代码,
#include <stdio.h>
#include <signal.h>
void sigproc(int);
void quitproc(int);
int main(int argc,char **argv)
{
signal(SIGINT, sigproc); //Is it like a normal Call to signal()?
signal(SIGQUIT, quitproc);// This too?
printf("ctrl- c disabled use ctrl\ to quit \n");
while(1);
return 0;
}
void sigproc(int signo)
{
printf("you have pressed ctrl - c \n");
}
void quitproc(int signo)
{
printf("U cant quit\n");
// exit(0);
}
我在 main() 中调用了函数 signal() 两次。但它仅在我按下 Ctrl-C 和 Ctrl-\ 键时执行。我认为它也像普通的函数调用。信号处理函数中实际发生了什么?
【问题讨论】: