#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main()
{
pid_t pid,wpid=0;
int status,i;
pid=fork();
if(pid==-1)
{
perror("创建子进程失败!");
exit(0);
}
else if(pid==0)
{
printf("这是子进程,进程号为:%d\n",getpid());
sleep(5);
exit(6);
}
else
{
while(wpid==0)
{
wpid=waitpid(pid,&status,WNOHANG);
printf("这是父进程,正在等待子进程\n");
sleep(1);
}
i=WEXITSTATUS(status);
printf("等待的子进程号为:%d, 结束状态为:%d\n",wpid,i);
}
return 0;
}
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main()
{
pid_t pid,wpid=0;
int status,i;
pid=fork();
if(pid==-1)
{
perror("创建子进程失败!");
exit(0);
}
else if(pid==0)
{
printf("这是子进程,进程号为:%d\n",getpid());
sleep(5);
exit(6);
}
else
{
while(wpid==0)
{
wpid=waitpid(pid,&status,WNOHANG);
printf("这是父进程,正在等待子进程\n");
sleep(1);
}
i=WEXITSTATUS(status);
printf("等待的子进程号为:%d, 结束状态为:%d\n",wpid,i);
}
return 0;
}