- 论坛徽章:
- 0
|
回复 #8 jiufei19 的帖子
这个代码会有问题????#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
void sig_handler(int sig)
{
(void)signal(SIGUSR1, sig_handler);
printf("parent recv [%d]...\n",sig);
}
int main()
{
pid_t pid;
(void)signal(SIGUSR1, sig_handler);
pid=fork();
switch(pid){
case -1:
perror("fork error!");
exit(1);
case 0:
while(1){
printf("child is going to send a signal.\n");
kill(getppid(), SIGUSR1);
printf("child begins to sleep...\n");
sleep(2);
}
break;
default:
for (;;)
{
printf("parent begins to pause...\n");
pause();
printf("parent wake up...\n");
}
}
return 0;
} |
a.out
parent begins to pause...
child is going to send a signal.
child begins to sleep...
parent recv [30]...
parent wake up...
parent begins to pause...
child is going to send a signal.
child begins to sleep...
parent recv [30]...
parent wake up...
parent begins to pause...
child is going to send a signal.
child begins to sleep...
parent recv [30]...
parent wake up...
parent begins to pause...
child is going to send a signal.
child begins to sleep...
parent recv [30]...
parent wake up...
parent begins to pause...
child is going to send a signal.
child begins to sleep...
parent recv [30]...
parent wake up...
parent begins to pause... |
|