首页 > 代码库 > 一、进程与信号不可靠问题
一、进程与信号不可靠问题
进程在处理过程中是否还可以接收处理信号,相同信号/不同信号
范列
#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>void set_signal(int signo){ if(signo == SIGINT) { printf("%d catch SIGINT\n",getpid()); sleep(5); printf("process the sigint finished\n"); } if(signo==SIGTSTP) { printf("%d catch SIGTSTP\n",getpid()); sleep(5); printf("process the sigtstp finished\n"); }}int main(){ if(signal(SIGINT,set_signal)==SIG_ERR) { printf("signal error\n"); return 1; } if(signal(SIGTSTP,set_signal)==SIG_ERR) { printf("signal error\n"); return 1; } //暂停等待信号 while(1) pause(); }
编译执行
进程处理中中发送相同信号,先发送ctrl+c 在发送ctrl+c^C3267 catch SIGINT^Cprocess the sigint finished3267 catch SIGINTprocess the sigint finished进程处理中发送不同信号,先发送ctrl+c 在发送ctrl+z^C3267 catch SIGINT^Z3267 catch SIGTSTPprocess the sigtstp finishedprocess the sigint finished
结论
进程处理中发送相同信号/不同信号仍然会处理,但是超过2次进程就会屏蔽
一、进程与信号不可靠问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。