阻塞的等待方式:
#include <stdio.h>
#include <stdlib.h>
#include <error.h>
#include <sys/types.h>
#include <sys/wait.h>
int main()
{
pid_t id = fork();
if(id < 0)
{
perror("fork");
exit(1);
}
else if(id == 0)
{
//child
printf("I am child\n");
sleep(5);
exit(20);
}
else
{
int status = 0;
pid_t ret = waitpid(-1,&status,0);// 阻塞式等待,等待5s
printf("procc wait...\n");
if(WIFEXITED(status) && ret == id)
{
printf("wait success,child return code is :%d.\n",WEXITSTATUS(st atus));
}else
{
printf("wait fail,return.\n");
return 1;
}
}
return 0;
}
结果截图