23,116
社区成员
发帖
与我相关
我的任务
分享
// file alrm_bad.c
// gcc -Wall -o alrm_bad alrm_bad.c
#include <signal.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
static void sig_alrm(int);
int main(int argc, char *argv[]) {
if (signal(SIGALRM, sig_alrm) == SIG_ERR)
perror("signal error");
alarm(2);
pause(); //////第一次alarm之后就停在这里,2秒后执行完sig_alrm函数就执行下一条语句,进程结束了。
exit(0);
}
static void
sig_alrm(int signo) {
printf("SIGALRM received\n");
alarm(2);
pause();
}