#include<stdio.h>#include<sys/types.h>#include<unistd.h>#include<sys/wait.h>#include<stdlib.h>intmain(){pid_t pid;int waitstatus=0;printf("initpid=%d\n",getpid());
pid=fork();if(pid==0){for(int i=0;i<5;i++){printf("this is child:pid=%d\n",getpid());sleep(1);}exit(3);}elseif(pid>0){while(1){wait(&waitstatus);//使用wait等待子进程退出并收集其退出的状态printf("this is father:pid=%d,childexit=%d\n",getpid(),WEXITSTATUS(waitstatus));//利用WEXITSTATUS解析状态sleep(1);}}return0;}