进程学习:进程间通信(传统通信方式)3.信号

来源:互联网 发布:关于网络语言暴力论文 编辑:程序博客网 时间:2024/06/09 23:31

信号是一个异步通信(意思就是忽略程序执行的先后顺序),大白话就是你别管我,我在呢,你该干啥就干啥,等到信号来时,我会蹦出来处理信号的;

常用到的信号函数:
kill:向指定进程发送一个信号;
raise:向当前进程发送一个信号;
alarm:给当前进程设置一个定时器;
pause:阻塞等待,直到当前进程收到一个信号为止;
signal:捕获一个信号,并执行用户自定义的信号处理程序,或执行忽略(SIGIGN)操作,或执行默认(SIGDFL)操作;

signal函数原型:
void (* siganal(int signo, void (*func)(int) ))( int )
好复杂啊,有木有?下面来解析一下它,其实没那么难;

这里写图片描述

下面来弄一个实例:看看信号程序传参过程:
这里写图片描述
图中 SIGINT 是 Ctrl + c

不能被忽略和被捕捉的信号:SIGKILL SIGSTOP

原创粉丝点击