|
有如下:
void sig_usr(int sig)
{
if(sig == SIGUSR1)
printf("SIGUSR1 received!\n");
}
int main(void)
{
pid_t pid;
if((pid=fork()) < 0)
perror("Fork error!\n");
else if(pid == 0){
printf("In Child...\n");
signal(SIGUSR1,sig_usr);
while(1){};
}else{
//kill(pid,SIGUSR1);
}
while(1)
{};
}
运行后ctrl-z把父子进程放到后台。
但是用kill -USR1 [子进程id]发现子进程没收到SIGUSR1的信号。
另外,如果试图在父进程里kill(pid,SIGUSR1)给子进程发信号的话,子进程根本没运行到!
求解!
谢谢 |
|