Linux、C语言进程之间通信

Linux、C语言进程之间通信

B.1 正常退出。

man的解析。

WIFEXITED(status)

returns true if the child terminated normally, that is, by call‐

ing exit(3) or _exit(2), or by returning from main().

真就是1,假就是0.

wait会返回被收集的子进程的进程ID,如果调用进程没有子进程,调用就会失败,此时wait返回-1,

WIFEXITED(status) 这个宏用来指出子进程是否为正常退出的,如果是,它会返回一个非零值。

WEXITSTATUS(status) 当WIFEXITED返回非零值时,我们可以用这个宏来提取子进程的返回值,如果子进程调用exit(5)退出,WEXITSTATUS(status)就会返回5;如果子进程调用exit(7),WEXITSTATUS(status)就会返回7。请注意,如果进程不是正常退出的,也就是说,WIFEXITED返回0,这个值就毫无意义。

----------->3

D 3

wait(#)等待子进程退出,并且捕获子进程的退出状态,pid==0为子进程,退出调用了exit(3),

所以wait捕获的就是3