日期:2014-05-16 浏览次数:20903 次
#include <stdio.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
int pid1 = fork();
int pid2;
if(pid1>0) pid2 = fork();
if(pid1==0){//子进程一
printf("子进程一开始运行,马上睡5s\n");
sleep(5);
exit(123);
}
if(pid2==0){//子进程二
printf("子进程二开始运行,马上睡3s\n");
sleep(3);
exit(234);
}
//以下是父进程
printf("父进程开始等待子进程一\n");
int r1 = 0;
waitpid(pid1,&r1,0);
printf("父进程开始等待子进程二\n");
int r2 = 0;
waitpid(pid2,&r2,0);
if(WIFEXITED(r1)){
printf("子进程一的返回码:%d\n", WEXITSTATUS(r1));
}
if(WIFEXITED(r2)){
printf("子进程一的返回码:%d\n", WEXITSTATUS(r2));
}
}