wait函数 1、头文件 #include <sys/types.h> #include <sys/wait.h> 2、函数原型 1) pid_t wait(int *status); 返回: 成功返回子进程ID,出错返回-1 功能: 在一个子进程终止前,wait使其调用者阻塞 2) pid_t waitpid(pid_t pid, int *status, int options); 返回: 成功返回子进程ID,出错返回-1 功能: 在一个子进程终止前,wait使其调用者阻塞,而waitpid有一选择项,可使调用者不阻塞。 waitpid并不等待第一个终止的子进程,它有若干个选择项,可以控制它所等待的进程。 waitpid函数提供了wait函数没有提供的三个功能: * waitpid等待一个特定的进程(而wait则返回任一终止子进程的状态)。 * waitpid提供了一个wait的非阻塞版本。有时希望取得一个子进程的状态,但不想阻塞。 * waitpid支持作业控制(以WUNTRACED选择项) status参数: 为空时,代表任意状态结束的子进程,若不为空,则代表指定状态结束的子进程。 options参数: WNOHANG: 若由pid指定的子进程没有退出则立即返回,则waitpid不阻塞,此时其返回值为0 WUNTRACED: 若某实现支持作业控制,则由pid指定的任一子进程状态已暂停,且其状态自暂停以来还未报告过,则返回其状态。WIFSTOPED宏确定返回值是否对应于一个暂停子进程 检查wait和waitpid所返回的终止状态的宏 WIFEXITED/WEXITSTATUS(status): 若为正常终止子进程返回的状态,则为真。 WIFSIGNALED/WTERMSIG(status): 若为异常终止子进程返回的状态,则为真(接到一个不捕捉的信号)。 WIFSTOPED/WSTOPSIG(status): 若为当前暂停子进程的返回的状态,则为真。
转载请注明原文地址: https://www.6miu.com/read-10407.html