5-1 信号signal
#include <signal.h> /******************************** *功能:给一个信号指定一个行为 *参数:signum:信号编号 * handler:函数的入口地址 *返回值:返回信号行为之前的值,否则返回SIG_ERR * ****************************/ typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); //替换如下 void (*signal(int signum , void(*handler)(int)))(int);
信号会打断阻塞的系统调用;
/************************ *功能:每秒向标准输出输出* * 信号到来输出! *信号的不可靠:信号行为不可靠 * *********************/ #include <stdio.h> #include <stdlib.h> #include <signal.h> void int_handler(int signum) { write(1 , "!" , 1); } int main() { int i ; //1.信号 signal(SIGINT , int_handler); for(i = 0 ; i < 10 ;i++) { write(1 , "*" , 1 ); sleep(1); } exit(0); }