child.c
来自「UNIX环境中利用信号完成进程间的通信」· C语言 代码 · 共 40 行
C
40 行
#include <sys/types.h>#include <signal.h>#include <stdio.h>static void sig_cld();intmain(){ pid_t pid; if (signal(SIGCLD, sig_cld) == -1) perror("signal error"); if ( (pid = fork()) < 0) perror("fork error"); else if (pid == 0) { /* child */ sleep(2); _exit(0); } pause(); /* parent */ exit(0);}static voidsig_cld(){ pid_t pid; int status; printf("SIGCLD received\n"); if (signal(SIGCLD, sig_cld) == -1) /* reestablish handler */ perror("signal error"); if ( (pid = wait(&status)) < 0) /* fetch child status */ perror("wait error"); printf("pid = %d\n", pid); return; /* interrupts pause() */}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?