首页 > 代码库 > C/C++ signal 信号处理函数
C/C++ signal 信号处理函数
软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。
内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。
注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。
kill -l ##可以列举当前系统支持的信号
void (*signal(int sig, void (*func)(int)))(int) ##singal 原型
看例子吧。
1 #include<stdio.h> 2 #include<pthread.h> 3 #include<unistd.h> 4 #include<signal.h> 5 6 bool is_quit = false; 7 8 void signal_handle(int signal_num){ 9 printf("receive the signal SIGUSR1\n"); 10 is_quit = true; 11 } 12 13 void* do_work(void* arg) 14 { 15 int num = 0; 16 printf("start\n"); 17 while(!is_quit){ 18 num++; 19 printf("running %d ... \n", num); 20 sleep(2); 21 } 22 printf("end\n"); 23 return NULL; 24 } 25 26 int main(int argc, char *argv[]) 27 { 28 pthread_t pid; 29 pthread_create(&pid, NULL, do_work, NULL); 30 signal(SIGUSR1, signal_handle); 31 pthread_join(pid, NULL); 32 return 0; 33 }
更多信号函数参考:http://blog.csdn.net/zzyoucan/article/details/9235685
C/C++ signal 信号处理函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。