1. wait函数的原型是:
#包含
#包含
PID_twait(int*statloc );
当进程调用wait时,它会立即阻止自己,父进程会暂停运行,并且wait会自动分析当前进程的子进程是否已终止。 找到这样一个变成僵尸的子进程后,wait会收集此子进程的信息,将其完全销毁并返回。如果找不到这样的子进程,wait将在出现一个之前被阻止。
参数statloc用于保存收集的进程结束时的状态。 这是指向int类型的指针。 但是,如果不关心此子进程是如何死的,而只想清除此僵尸进程,则可以将此参数设置为空: PID=wait (空)。
如果成功,则wait返回收集的子进程的进程ID;如果调用进程没有子进程,则调用失败,wait返回-1,errno设置为ECHILD。 如果statloc不为NULL,则参数statloc指向的变量包含子进程的退出代码,即子进程的主函数返回的值或子进程的退出函数的参数。
2 .名为2.wifexited(statloc )的宏指示子进程是否成功终止,如果终止,则返回非零值。 这里的statloc与指示等待函数的整数的指针不同,是该指针所指示的整数。
3 .如果w exit (5状态(状态) WIFEXITED返回非零值,则可以使用此宏提取子进程的返回值。 当子进程调用exit ) 5并退出时,wexitstatus (状态)返回5。 当子进程调用exit(7)时,wexitstatus返回7。 请注意,如果进程未成功结束,即WIFEXITED返回0,则此值没有意义。