当前位置: 技术问答>linux和unix
关于在父子进程中使用signal函数的问题
来源: 互联网 发布时间:2017-04-28
本文导语: 各位大侠,我在gcc中,编辑一个程序,源代码如下: #include #include #include #include #include void handler(int signo) { switch(signo) { case SIGUSR1: printf("parent: catch SIGUSR1n"); break; case SIGUSR2: printf("child: catch SIGUSR2n...
各位大侠,我在gcc中,编辑一个程序,源代码如下:
#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())
#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())