进程间通信方式(2)---信号
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号是进程间通信机制中唯一的异步通信机制,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号可类比处理器收到一个中断请求。
常见信号:
SIGKILL:杀死进程,不能忽略
SIGSTOP:停止一个进程,不能忽略
SIGCHILD:当子进程状态发生改变,内核会向父进程发送此信号,进程默认忽略这个信号
SIGINT:ctrl+c
SIGPIPE:对管道的操作的时候,如果读端不存在,写管道会发送此信号
信号处理方式:
忽略信号signal(signum,SIG_IGN);
捕捉信号:signal(signum,handler);
默认操作signal(signum,SIG_DFL);
用到的函数:
int kill(pid_t pid,int sigNum);//给指定的进程发送信号
int raise(int sigNum);//给自己发送信号
unsigned int alarm(unsigned int seconds);//设置定时器,定时时间到,内核向进程发送SIGALARM
int pause(void);//调用次函数回引起堵塞,当信号来临,并且设置了捕捉信号是,会将其唤醒,从pause 后面开始执行