信号通讯编程,王明学learn
2016-03-21 17:39
204 查看
信号通讯编程
在Linux系统中,信号(signal)同样也是最为古老的进程间通信机制。
一、信号类型
Linux系统支持的所有信号均定义在/usr/include/asm/signal.h(展示),其中常见的信号有:
SIGKILL:杀死进程
SIGSTOP:暂停进程
SIGCHLD:子进程停止或结束时用来通知父进程
二、函数学习
2.1 发送信号
2.1.1 函数名
kill
2.1.2 函数原形
int kill(pid_t pid,int sig);
2.1.3 函数功能
向进程发送信号
2.1.4 所属头文件
<sys/types.h> <singl.h>
2.1.5 返回值
成功:返回0
失败:返回-1
2.1.6 参数说明
pid: if(pid>0),pid 参数指向接收信号的进程
sig:用来指明我们要发送的信号
2.2 处理信号
2.2.1 函数名
signal
2.2.2 函数原形
typedef void(*sighandler_t)(int);
sighandler_t signal(int signum,sighandler_t handler);
2.2.3 函数功能
设置信号处理方式
2.2.4 所属头文件
<signal.h>
2.2.5 返回值
成功:返回处理函数的指针
失败:返回SIG_ERR
2.2.6 参数说明
Signum:要处理的的信号
handler:对应信号的处理方式,可以取值(3种)
SIG_IGN:忽视这个信号不处理
SIG_DFL:交给内核处理
用户自己定义的函数:交给用户自定义的函数处理
在Linux系统中,信号(signal)同样也是最为古老的进程间通信机制。
一、信号类型
Linux系统支持的所有信号均定义在/usr/include/asm/signal.h(展示),其中常见的信号有:
SIGKILL:杀死进程
SIGSTOP:暂停进程
SIGCHLD:子进程停止或结束时用来通知父进程
二、函数学习
2.1 发送信号
2.1.1 函数名
kill
2.1.2 函数原形
int kill(pid_t pid,int sig);
2.1.3 函数功能
向进程发送信号
2.1.4 所属头文件
<sys/types.h> <singl.h>
2.1.5 返回值
成功:返回0
失败:返回-1
2.1.6 参数说明
pid: if(pid>0),pid 参数指向接收信号的进程
sig:用来指明我们要发送的信号
2.2 处理信号
2.2.1 函数名
signal
2.2.2 函数原形
typedef void(*sighandler_t)(int);
sighandler_t signal(int signum,sighandler_t handler);
2.2.3 函数功能
设置信号处理方式
2.2.4 所属头文件
<signal.h>
2.2.5 返回值
成功:返回处理函数的指针
失败:返回SIG_ERR
2.2.6 参数说明
Signum:要处理的的信号
handler:对应信号的处理方式,可以取值(3种)
SIG_IGN:忽视这个信号不处理
SIG_DFL:交给内核处理
用户自己定义的函数:交给用户自定义的函数处理
相关文章推荐
- 用代码实现 autolayout
- 练习:微博界面搭建(用代码自定义 cell)
- php代码加密
- 如何分析一个开源工程的代码
- Java反射机制
- [LeetCode]题解(python):123-Best Time to Buy and Sell Stock III
- 分类(category)的延展(类的私有化扩展)
- C++ const实现原理
- Matlab投影仿真及三维曲面重构实现及演示程序
- 分类(category)非正式协议
- 分类(category)的使用和注意事项
- 分类(category)声明与实现
- 分类(category)的概念与使用
- Qt connect不明确
- Java多线程系列--“JUC锁”06之 Condition条件
- 字符流:Writer、Reader
- C#中打印出当前堆栈
- 关于asp.net mvc项目部署到云服务器的一些经验分享
- Java基础学习第二十天——异常与FILE类
- 代码解析深度学习系统编程模型:TensorFlow vs. CNTK