子进程wait/waitpid//子进程不结束,父进程会等待子进程吗?
waitpid第三个参数什么意思?子进程exit是退出,用return什么作用?
#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)); }}