wait
1、wait阻塞父进程,没有子进程或SIGCHLD set to SIG_IGN 会失败,until status information for one of the terminated child processes of the calling process is available, or until delivery of a
signal whose action is either to execute a signal-catching function or to terminate the process.
2、status 什么时候是0:
The process returned 0 from main().
The process called _exit() or exit() with a status argument of 0.
The process was terminated because the last thread in the process terminated.
3、WIFEXITED(stat_val)
Evaluates to a non-zero value if status was returned for a child process that terminated normally. 包括stat_val是0;但0是正常退出,其他exit(2)等退出。
WEXITSTATUS (status); 只有stat_val== 0 才有意义。其他的比如signal的退出也都是0;
4、WIFSIGNALED(stat_val)
Evaluates to a non-zero value if status was returned for a child process that terminated due to the receipt of a signal that was not caught (see <signal.h>).
WTERMSIG(stat_val)
If the value of WIFSIGNALED(stat_val) is non-zero, this macro evaluates to the number of the signal that caused the termination of the child process.
5、信号的status id号和exit的不同。