wait4(2) - Linux 手册页
名称
wait3, wait4 - 等待进程状态改变,BSD 风格
概要
#include <sys/types.h> #include <sys/time.h> #include <sys/resource.h> #include <sys/wait.h> pid_t wait3(int *status, int options, struct rusage *rusage); pid_t wait4(pid_t pid, int *status, int options, struct rusage *rusage);glibc 的功能测试宏要求(参见 feature_test_macros(7))
- wait3():
- _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
- wait4():
- _BSD_SOURCE
描述
这些函数已经过时;在新程序中使用 waitpid(2) 或 waitid(2)。
wait3() 和 wait4() 系统调用类似于 waitpid(2),但额外返回指向 rusage 的结构体中关于子进程的资源使用信息。
除了使用 rusage 参数之外,以下 wait3() 调用
wait3(status, options, rusage);等同于
waitpid(-1, status, options);类似地,以下 wait4() 调用
wait4(pid, status, options, rusage);等同于
waitpid(pid, status, options);换句话说,wait3() 等待任何子进程,而 wait4() 可以用来选择特定的子进程或子进程组进行等待。有关更多详细信息,请参阅 wait(2)。
如果 rusage 不为 NULL,则指向它的 struct rusage 结构体将被填充关于子进程的会计信息。有关详细信息,请参阅 getrusage(2)。
返回值
与 waitpid(2) 类似。
错误
与 waitpid(2) 类似。
符合
4.3BSD。
SUSv1 包含 wait3() 的规范;SUSv2 包含 wait3(),但将其标记为 LEGACY;SUSv3 移除了它。
说明
现在包含 <sys/time.h> 不是必需的,但可以提高可移植性。(实际上,<sys/resource.h> 定义了 rusage 结构体,其中包含在 <sys/time.h> 中定义的 struct timeval 类型字段。)
在 Linux 上,wait3() 是一个库函数,它是在 wait4() 系统调用之上实现的。
参见
fork(2), getrusage(2), sigaction(2), signal(2), wait(2), signal(7)