【Linux】信号通讯编程
来源:互联网 发布:淘宝无名体育怎么样 编辑:程序博客网 时间:2024/05/16 18:54
一、信号类型
1、SIGKILL:杀死进程
2、SIGSTOP:暂停进程
3、SIGCHLD:子进程停止或结束时用来通知父进程
二、函数学习
1、发送信号:kill,向进程发送信号
1)函数原型
int kill(pid_t pid, int sig);
2)所属头文件
#include <sys/types.h>
#include <signal.h>
3)返回值
成功: 0
失败: -1
4)参数说明
pid: 当pid > 0, 接收信号的进程号
sig: 要发送的信号
/* send_sig.c */#include <sys/types.h>#include <signal.h>#include <stdlib.h>void main(int arvc, char* argv[]){pid_t pid = 0;pid = atoi(argv[1]);kill(pid, SIGINT);puts("Signal was sent.");}
2、处理信号:signal, 设置信号的处理方式
1)函数原型
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
2)所属头文件
#include <signal.h>
3)返回值
成功: 返回处理函数的指针
失败: SIG_ERR
4)参数说明
signum: 要处理的信号
handler: 对应信号的处理方式
* SIG_IGN: 忽略(ignore)
* SIG_DEF: 交给内核处理
* 用户自定义函数: 交给用户自定义函数处理
/* read_sig.c */#include <signal.h>#include <unistd.h>#include <stdio.h>void myfunc(int num){puts("Process sd_proc received SIGINT.");}void main(){signal(SIGINT, myfunc);pause();}
* 运行结果
* 命令: ps -e 查看进程read_sig的pid, 然后用send_sig发送信号给这个pid.
0 0
- Linux信号通讯编程
- Linux信号通讯编程
- 【Linux】信号通讯编程
- 【Linux信号通讯编程】信号量同步
- linux应用编程--信号通讯(上)
- 信号通讯编程
- 【Linux信号通讯编程】信号量互斥编程
- linux信号通讯
- Linux信号通讯
- Linux信号通讯编程(国嵌总结)
- Linux进程通讯:信号(signal)
- linux 进程通讯之信号
- Linux进程通讯:管道通讯、信号通讯、共享内存
- Linux_4.5_信号通讯编程
- Linux 进程间通讯之信号方式
- linux进程之间通讯常用信号
- Linux 进程间通讯之信号方式
- Linux系统进程间通讯-信号
- oracle type 数据类型
- 【Gson】Json转换器之Gson——项目实战
- 关于链表的二叉树(其实我 还有好多盲点)
- git学习-本地版本库管理命令
- 三级缓存
- 【Linux】信号通讯编程
- 表达式语法分析——预测分析法
- Web Service快速入门
- AS Live Templates
- Camera中onPreviewFrame()方法的视频方向旋转
- 网站数据数据分析-网站js埋点
- 模拟
- 最短路模板 floyd+dijkstra+spfa
- spring+quartz实现任务调度