Linux信号1
来源:互联网 发布:unity3d制作的小游戏 编辑:程序博客网 时间:2024/06/13 04:28
一、信号基本概念。
信号简单的来说它就是以中国通知机制,它是为了响应某个事件而产生的,接收到相关信号的进程就会去执行对应的动作。接收到信号的进程会先在自己的PCB中记下相关信息,等到合适的时候去处理这个信号。
可以使用kill -l命令查看当前系统定义的信号列表:
二、信号产生的条件
1.用户在终端按下某些键时,终端驱动程序会发送信号给前台进程。
2.硬件异常产生信号,由硬件通知内核,然后内核向当前进程发送适当的信号。
3.一个进程调用kill函数可以给另一个进程发送信号。
三、处理信号的动作
1.忽略此信号。
2.执行该信号的默认处理动作。
3.提供一个信号处理函数,这个函数是由用户提供的,让进程执行自己指定的函数动作。这种方式称为捕捉一个信号。
四、产生信号
1.通过终端按键产生信号
我们先来解释一下关于核心转储的问题:Core Dunp,是当一个进程要异常中止时,可以选择把进程的用户空间内存数据全部保存到磁盘上。
使用ulimit -a查看当前core文件大小:
可以使用ulimit -c 10240设置core文件大小:
一般core文件大小默认是0,因为为了保护用户隐私安全同时也为了内存考虑,防止占用过多空间。
再来认识一下signal函数:
这个函数是为了捕捉一个信号,第一个参数是指的是捕捉的哪个信号,第二个参数是捕捉到信号后,进程需要去执行的动作,是个函数指针类型。
一下程序捕捉到的分别是2号和8号信号:
2.调用系统函数向进程发信号
kill命令是通过调用Kill函数实现的。kill函数可以给指定的进程发送一个信号,raise函数可以是当前进程自己给自己发送一个信号,abort函数使当前进程接收到信号而终止。
用kill函数写一个mykill程序,如下所示:
- Linux信号1
- Linux信号实践(1) --Linux信号编程概述
- Linux信号实践(1) --Linux信号编程概述
- Linux信号实践(1) --Linux信号编程概述
- Linux信号实践(1) --Linux信号编程概述
- linux 信号&信号处理
- linux 信号&信号处理
- linux 信号&信号处理
- linux 信号 信号集
- linux信号--阻塞信号
- linux 自定义信号(1)
- Linux中的信号(1)
- Linux信号
- linux信号
- Linux信号
- linux 信号
- linux 信号
- linux 信号
- Codeforces Round #408 (Div. 2) C. Bank Hacking
- MATLAB 视频与图像转换
- 资源整理
- nyoj 115 城市平乱(spfa)
- 拦截导弹 dp java
- Linux信号1
- socket网络编程
- 在编译android4.4的时候libwebviewchromium.so时停止很长时间发生错误
- LinuxC编程之IO-通过lseek对文件进行读写
- 最长回文子串(Manacher算法)
- 深度学习中momentum的作用
- c++第四次作业
- vue-cli&webpack&arcgis API For JS的天坑之路(一)
- React 入门实例教程