NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |STANDARDS |HISTORY |SEE ALSO |COLOPHON | |
wait4(2) System Calls Manualwait4(2)wait3, wait4 - wait for process to change state, BSD style
Standard C library (libc,-lc)
#include <sys/wait.h>pid_t wait3(int *_Nullablewstatus, intoptions,struct rusage *_Nullablerusage);pid_t wait4(pid_tpid, int *_Nullablewstatus, intoptions,struct rusage *_Nullablerusage); Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):wait3(): Since glibc 2.26: _DEFAULT_SOURCE || (_XOPEN_SOURCE >= 500 && ! (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)) From glibc 2.19 to glibc 2.25: _DEFAULT_SOURCE || _XOPEN_SOURCE >= 500 glibc 2.19 and earlier: _BSD_SOURCE || _XOPEN_SOURCE >= 500wait4(): Since glibc 2.19: _DEFAULT_SOURCE glibc 2.19 and earlier: _BSD_SOURCE
These functions are nonstandard; in new programs, the use ofwaitpid(2) orwaitid(2) is preferable. Thewait3() andwait4() system calls are similar towaitpid(2), but additionally return resource usage information about the child in the structure pointed to byrusage. Other than the use of therusage argument, the followingwait3() call: wait3(wstatus, options, rusage); is equivalent to: waitpid(-1, wstatus, options); Similarly, the followingwait4() call: wait4(pid, wstatus, options, rusage); is equivalent to: waitpid(pid, wstatus, options); In other words,wait3() waits of any child, whilewait4() can be used to select a specific child, or children, on which to wait. Seewait(2) for further details. Ifrusage is not NULL, thestruct rusage to which it points will be filled with accounting information about the child. Seegetrusage(2) for details.
As forwaitpid(2).
As forwaitpid(2).
None.
4.3BSD. SUSv1 included a specification ofwait3(); SUSv2 includedwait3(), but marked it LEGACY; SUSv3 removed it. Including<sys/time.h> is not required these days, but increases portability. (Indeed,<sys/resource.h> defines therusage structure with fields of typestruct timeval defined in<sys/time.h>.)C library/kernel differences On Linux,wait3() is a library function implemented on top of thewait4() system call.
fork(2),getrusage(2),sigaction(2),signal(2),wait(2),signal(7)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17wait4(2)Pages that refer to this page:time(1), _exit(2), getrusage(2), syscalls(2), wait(2), popen(3), signal(7)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |