#include <stdio.h>
#include <pthread.h>
#include <signal.h>
#include <stdlib.h>
static void sig_cld(int signo)
{
pid_t pid;
int status;
printf("recived SIGCLD\n");
if((pid = wait(&status)) < 0)
{
printf("wait error\n");
}
printf("pid = %d\n", pid);
}
int main(int argc, char *argv[])
{
pid_t pid;
if(signal(SIGCLD, sig_cld)==SIG_ERR)
{
printf("signal error\n");
}
if((pid = fork())<0){
printf("fork error\n");
}
else if(pid == 0){
sleep(2);
_exit(0);
}
pause();
if((pid = fork())<0){
printf("fork error\n");
}
else if(pid == 0){
sleep(2);
_exit(0);
}
pause();
exit(0);
return 0;
}
signal进阶1 --- SIGCLD的用法
最新推荐文章于 2020-11-17 14:41:05 发布