zoukankan      html  css  js  c++  java
  • 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
    ");
    10     is_quit = true;
    11 }
    12 
    13 void* do_work(void* arg)
    14 {  
    15     int num = 0;
    16     printf("start
    ");  
    17     while(!is_quit){
    18         num++;
    19         printf("running %d ... 
    ", num);
    20         sleep(2);
    21     }   
    22     printf("end
    ");  
    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

  • 相关阅读:
    答题卡
    hdu 5451 Best Solver
    L. Poor God Water(ACM-ICPC 2018 焦作赛区网络预赛)
    MicroRNA Ranking(Tehran2016)
    Split The Tree(2018东北四省赛)
    Django项目基础开发流程
    暑假学习进度记录墙
    抖音字体设置
    十大危险cmd指令
    奶牛的聚会
  • 原文地址:https://www.cnblogs.com/xudong-bupt/p/7297336.html
Copyright © 2011-2022 走看看