- 论坛徽章:
- 0
|
#include<apue.h>
#include<unistd.h>
#include<stdlib.h>
#include<setjmp.h>
#include<sys/wait.h>
#include<pwd.h>
static void sig_alrm(int);
static void sig_int(int);
int main()
{
if(signal(SIGALRM,sig_alrm)==SIG_ERR)
printf("signal(SIGALRM) error\n");
if(signal(SIGINT,sig_int)==SIG_ERR)
printf("signal(SIGALRM) error\n");
alarm(10);
pause();
return 0;
}
static void sig_alrm(int signo)
{
printf("alarm is called\n");
}
static void sig_int(int signo)
{
printf("starting interrupt\n");
pause();
}
|
这个程序运行时,按ctrl c然后执行中断处理程序,为什么alarm函数在运行时没有被中断,而是在程序挂起后仍产生SIGALRM信号。 |
|