C/C++ signal 信号处理函数

简介: 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。

软中断信号(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

相关文章
|
1月前
|
C++
C++ 数学函数、头文件及布尔类型详解
C++ 支持数学操作,如`max`和`min`函数找最大值和最小值,以及`&lt;cmath&gt;`库中的`sqrt`、`round`等数学函数。`bool`类型用于布尔逻辑,取值`true`(1)或`false`(0)。布尔表达式结合比较运算符常用于条件判断,例如在`if`语句中检查年龄是否达到投票年龄。在代码示例中,`isCodingFun`和`isFishTasty`变量分别输出1和0。
124 1
|
1月前
|
算法 C++ 容器
C++中模板函数以及类模板的示例(template)
C++中模板函数以及类模板的示例(template)
|
3天前
|
自然语言处理 编译器 C语言
【C++】C++ 入门 — 命名空间,输入输出,函数新特性
本文章是我对C++学习的开始,很荣幸与大家一同进步。 首先我先介绍一下C++,C++是上个世纪为了解决软件危机所创立 的一项面向对象的编程语言(OOP思想)。
30 1
【C++】C++ 入门 — 命名空间,输入输出,函数新特性
|
4天前
|
存储 算法 对象存储
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
14 1
|
4天前
|
存储 算法 数据安全/隐私保护
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
7 0
|
5天前
|
存储 自然语言处理 C++
刷题用到的非常有用的函数c++(持续更新)
刷题用到的非常有用的函数c++(持续更新)
12 1
|
5天前
|
存储 编译器 C++
【C++】内存管理和模板基础(new、delete、类及函数模板)
【C++】内存管理和模板基础(new、delete、类及函数模板)
21 1
|
11天前
|
存储 C++
c/c++宏定义(函数)
c/c++宏定义(函数)
|
13天前
|
编译器 C++
【C++进阶】引用 & 函数提高
【C++进阶】引用 & 函数提高
|
18天前
|
C++
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础