信号捕捉
signal函數
注冊一個信號捕捉函數:
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
?????? 該函數由ANSI定義,由于歷史原因在不同版本的Unix和不同版本的Linux中可能有不同的行為。因此應該盡量避免使用它,取而代之使用sigaction函數。
??? void (*signal(int signum, void (*sighandler_t)(int))) (int);
注意多在復雜結構中使用typedef。
/*** catch??_signal.c ***/ #include<stdio.h> #include<sys/time.h> #include<signal.h>void myfun(int signo) {printf("hello world\n"); } int main() {struct itimerval it,oldit;signal(SIGALRM,myfun);it.it_value.tv_sec = 5;it.it_value.tv_usec = 0;it.it_interval.tv_sec = 3;it.it_interval.tv_usec = 0;if(setitimer(ITIMER_REAL,&it,&oldit) == -1){perror("setitimer error");return -1;}while(1);return 0; }?
轉載于:https://www.cnblogs.com/wanghao-boke/p/11333030.html
總結
- 上一篇: 妖姬打团的时候怎么打,一团起来怎么没的都
- 下一篇: 打印未决信号集