当前位置: 技术问答>linux和unix
子进程未接受到父进程发送信号
来源: 互联网 发布时间:2017-05-23
本文导语: 以下代码,当父进程向子进程发送SIGUSR2信号时kill(cpid,SIGUSR2),子进程未接收到该信号,调试环境是ubuntu14.04, i386,哪位高手帮忙分析下是什么原因导致如下的问题。 #include #include #include #include #include #include void handl...
以下代码,当父进程向子进程发送SIGUSR2信号时kill(cpid,SIGUSR2),子进程未接收到该信号,调试环境是ubuntu14.04, i386,哪位高手帮忙分析下是什么原因导致如下的问题。
#include
#include
#include
#include
#include
#include
void handler(int signo){
switch(signo){
case SIGUSR1:
printf("Parent : catch SIGUSR1n");
break;
case SIGUSR2:
printf("Child : catch SIGUSR2n");
break;
default:
printf("should not be heren");
break;
}
return ;
}
int main(void){
pid_t ppid,cpid;
if(signal(SIGUSR1, handler)==SIG_ERR){
perror("can't set handler for SIGUSR1");
exit(1);
}
if(signal(SIGUSR2, handler)==SIG_ERR){
perror("can't set handler for SIGUSR2");
exit(1);
}
ppid=getpid();
if((cpid=fork())