日期:2014-05-16 浏览次数:20750 次
#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)); } }