linux应用编程学习(6)信号
来源:互联网 发布:水镜先生知乎 编辑:程序博客网 时间:2024/05/17 04:09
一、信号:在Linux系统中,信号(signal)同样也是最为古老的进程间通信机制。
二、信号处理流程:①选择信号②发送信号③处理信号
三、信号类型:Linux系统支持的所有信号均定义在/usr/include/asm/signal.h(展示),其中常见的信号有:
6.1 发送信号
二、信号处理流程:①选择信号②发送信号③处理信号
三、信号类型:Linux系统支持的所有信号均定义在/usr/include/asm/signal.h(展示),其中常见的信号有:
- SIGKILL: 杀死进程
- SIGSTOP:暂停进程
- SIGCHLD:子进程停止或结束时用来通知父进程
6.1 发送信号
6.1.1 函数名
Kill
6.1.2 函数原形
Int kill(pid_t pid, int sig);
6.1.3 函数功能
发送信号给进程
6.1.4 所属头文件
<sys/types.h> <signal.h>
6.1.5 返回值
成功:0 失败:-1
6.1.6 参数说明
Pid:>0接收进程ID,0发送给所有进程组的进程。-1,发送给所有有发送权限的进程ID除了init进程。<-1,发送给所有进程组的-pid的进程。
Sig:要发送的信号,0的话不发送,单确认error来确认是否有进程。
6.2 处理信号
6.2.1 函数名
Signal
6.2.2 函数原形
Typedef void (*sighandler_t)(int);
Sighandler_t signal(int signum, sighandler_t handler);
6.2.3 函数功能
设置信号处理方式
6.2.4 所属头文件
<signal.h>
6.2.5 返回值
成功:返回函数处理之前的值 失败:SIG_ERR
6.2.6 参数说明
Signum:接收到的信号
Handler:对应信号的处理方式,可以取值
SIG_IGN:忽略这个信号(不处理)
SIG_DEL:交给内核处理
用户自定义的函数:交给用户自定义的函数来处理
a_signal.c:
b_signal.c:
a_signal.c:
- #include <sys/types.h>
- #include <signal.h>
- #include <stdio.h>
- void main(int argc, char *argv[])
- {
- pid_t pid;
- if(argc < 1)
- {
- printf("usage:a_signal [pid]\n");
- return;
- }
- pid = atoi(argv[1]);
- kill(pid,SIGINT);
- }
- #include <signal.h>
- #include <unistd.h>
- typedef void (*sighandler_t)(int);
- void myfunc(int a)
- {
- printf("Process B received SIGINT\n");
- }
- void main()
- {
- signal(SIGINT , myfunc);
- pause();
- }
0
上一篇:静态函数库、动态链接库设置
下一篇:信号量的互斥与同步
相关热门文章
- test123
- 编写安全代码——小心有符号数...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- 彻底搞定C语言指针详解-完整版...
给主人留下些什么吧!~~
评论热议
阅读全文
0 0
- linux应用编程学习(6)信号
- 信号集函数组 - 嵌入式Linux应用编程学习笔记
- linux应用开发-信号编程
- Linux系统编程学习笔记(6)-信号
- linux应用编程笔记(11)信号通信
- linux应用编程--信号通讯(上)
- Linux学习(信号)
- UNIX/LINUX编程学习之信号1
- UNIX/LINUX编程学习之信号2
- Linux高性能服务器编程——信号及应用
- 6.Linux应用编程——管道、信号
- linux系统编程之信号(一):信号基本概述
- linux系统编程之信号(一):中断与信号
- linux系统编程之信号(一):中断与信号
- Linux系统编程之信号(一):信号基本概述
- linux系统编程之信号(一):中断与信号
- linux系统编程之信号(一):中断与信号
- Linux信号编程实践(一) 信号概述
- spring boot environmentaware接口实现环境变量读取和属性对象的绑定
- GDB和coredump
- Linux应用程序地址布局
- 静态函数库、动态链接库设置
- css技巧—图片配文字
- linux应用编程学习(6)信号
- 通过自定义属性添加样式(css+js,动态判断背景颜色)
- 信号量的互斥与同步
- 共享内存通信
- 消息队列编程
- 多线程互斥和同步
- Linux网络编程协议
- TCP/UDP socket编程学习
- vim多行增加缩进
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
帝皇明星系统
剑之帝皇txt下载
万古帝皇 点墨江山
无上帝皇决
无上帝皇
帝王争霸
帝王翡翠
帝王铠甲
大帝王
帝王修魔录
帝王归来
帝王后宫
帝王玉翡翠
帝王风范酒
帝王家居
清代帝王表
帝王影视
帝少心尖宠早安小纽
帝美
帝胄
帝舵浪琴
帝舵欧米茄
穷人戴帝舵
帝舵名表
帝舵吧
手表帝舵
帝舵怎么样
帝舵价格
帝舵tudor
帝舵报价
帝舵经典款
帝舵骏钰
帝舵74033
名表帝舵
帝舵手表价格和图片
帝舵为什么这么贵
帝舵和浪琴哪个好
男人选帝舵还是欧米茄
香港帝舵手表价格和图片
帝舵和欧米茄哪个好
帝舵维修中心