# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 06:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "wait" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "wait, waitpid, waitid - wait for process to change state" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Standard C library (I, I<-lc>)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<#include Esys/wait.hE>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<);>\n" "BIB<, int *_Nullable >IB<, int >IB<);>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, id_t >IB<, siginfo_t *>IB<, int >IB<);>\n" " /* This is the glibc and POSIX interface; see\n" " NOTES for information on the raw system call. */\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Feature Test Macro Requirements for glibc (see B(7)):" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B():" msgstr "" #. (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" " Since glibc 2.26:\n" " _XOPEN_SOURCE E= 500 || _POSIX_C_SOURCE E= 200809L\n" " glibc 2.25 and earlier:\n" " _XOPEN_SOURCE\n" " || /* Since glibc 2.12: */ _POSIX_C_SOURCE E= 200809L\n" " || /* glibc E= 2.19: */ _BSD_SOURCE\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "All of these system calls are used to wait for state changes in a child of " "the calling process, and obtain information about the child whose state has " "changed. A state change is considered to be: the child terminated; the " "child was stopped by a signal; or the child was resumed by a signal. In the " "case of a terminated child, performing a wait allows the system to release " "the resources associated with the child; if a wait is not performed, then " "the terminated child remains in a \"zombie\" state (see NOTES below)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If a child has already changed state, then these calls return immediately. " "Otherwise, they block until either a child changes state or a signal handler " "interrupts the call (assuming that system calls are not automatically " "restarted using the B flag of B(2)). In the " "remainder of this page, a child whose state has changed and which has not " "yet been waited upon by one of these system calls is termed I." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "wait() and waitpid()" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() system call suspends execution of the calling thread until " "one of its children terminates. The call I is equivalent to:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "waitpid(-1, &wstatus, 0);\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() system call suspends execution of the calling thread until " "a child specified by I argument has changed state. By default, " "B() waits only for terminated children, but this behavior is " "modifiable via the I argument, as described below." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The value of I can be:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "E B<-1>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "meaning wait for any child process whose process group ID is equal to the " "absolute value of I." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<-1>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "meaning wait for any child process." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<0>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "meaning wait for any child process whose process group ID is equal to that " "of the calling process at the time of the call to B()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "E B<0>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "meaning wait for the child whose process ID is equal to the value of I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value of I is an OR of zero or more of the following constants:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "return immediately if no child has exited." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "also return if a child has stopped (but not traced via B(2)). " "Status for I children which have stopped is provided even if this " "option is not specified." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B (since Linux 2.6.10)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "also return if a stopped child has been resumed by delivery of B." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "(For Linux-only options, see below.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If I is not NULL, B() and B() store status " "information in the I to which it points. This integer can be inspected " "with the following macros (which take the integer itself as an argument, not " "a pointer to it, as is done in B() and B()!):" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "returns true if the child terminated normally, that is, by calling " "B(3) or B<_exit>(2), or by returning from main()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "returns the exit status of the child. This consists of the least " "significant 8 bits of the I argument that the child specified in a " "call to B(3) or B<_exit>(2) or as the argument for a return " "statement in main(). This macro should be employed only if B " "returned true." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "returns true if the child process was terminated by a signal." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "returns the number of the signal that caused the child process to " "terminate. This macro should be employed only if B returned " "true." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "returns true if the child produced a core dump (see B(5)). This macro " "should be employed only if B returned true." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This macro is not specified in POSIX.1-2001 and is not available on some " "UNIX implementations (e.g., AIX, SunOS). Therefore, enclose its use inside " "I<#ifdef WCOREDUMP ... #endif>." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "returns true if the child process was stopped by delivery of a signal; this " "is possible only if the call was done using B or when the child " "is being traced (see B(2))." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "returns the number of the signal which caused the child to stop. This macro " "should be employed only if B returned true." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BIB<)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "(since Linux 2.6.10) returns true if the child process was resumed by " "delivery of B." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "waitid()" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() system call (available since Linux 2.6.9) provides more " "precise control over which child state changes to wait for." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I and I arguments select the child(ren) to wait for, as " "follows:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I == B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Wait for the child whose process ID matches I." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I == B (since Linux 5.4)" msgstr "" #. commit 3695eae5fee0605f316fbaad0b9e3de791d7dfaf #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Wait for the child referred to by the PID file descriptor specified in " "I. (See B(2) for further information on PID file " "descriptors.)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I == B" msgstr "" #. commit 821cc7b0b205c0df64cce59aacc330af251fa8f7 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Wait for any child whose process group ID matches I. Since Linux 5.4, " "if I is zero, then wait for any child that is in the same process group " "as the caller's process group at the time of the call." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I == B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Wait for any child; I is ignored." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The child state changes to wait for are specified by ORing one or more of " "the following flags in I:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Wait for children that have terminated." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Wait for children that have been stopped by delivery of a signal." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Wait for (previously stopped) children that have been resumed by delivery of " "B." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The following flags may additionally be ORed in I:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "As for B()." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Leave the child in a waitable state; a later wait call can be used to again " "retrieve the child status information." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Upon successful return, B() fills in the following fields of the " "I structure pointed to by I:" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The process ID of the child." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The real user ID of the child. (This field is not set on most other " "implementations.)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Always set to B." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Either the exit status of the child, as given to B<_exit>(2) (or " "B(3)), or the signal that caused the child to terminate, stop, or " "continue. The I field can be used to determine how to interpret " "this field." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Set to one of: B (child called B<_exit>(2)); B " "(child killed by signal); B (child killed by signal, and dumped " "core); B (child stopped by signal); B (traced " "child has trapped); or B (child continued by B)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If B was specified in I and there were no children in a " "waitable state, then B() returns 0 immediately and the state of the " "I structure pointed to by I depends on the " "implementation. To (portably) distinguish this case from that where a child " "was in a waitable state, zero out the I field before the call and " "check for a nonzero value in this field after the call returns." msgstr "" #. POSIX.1-2001 leaves this possibility unspecified; most #. implementations (including Linux) zero out the structure #. in this case, but at least one implementation (AIX 5.1) #. does not -- MTK Nov 04 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX.1-2008 Technical Corrigendum 1 (2013) adds the requirement that when " "B is specified in I and there were no children in a " "waitable state, then B() should zero out the I and " "I fields of the structure. On Linux and other implementations " "that adhere to this requirement, it is not necessary to zero out the " "I field before calling B(). However, not all " "implementations follow the POSIX.1 specification on this point." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(): on success, returns the process ID of the terminated child; on " "failure, -1 is returned." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(): on success, returns the process ID of the child whose state " "has changed; if B was specified and one or more child(ren) " "specified by I exist, but have not yet changed state, then 0 is " "returned. On failure, -1 is returned." msgstr "" #. FIXME As reported by Vegard Nossum, if infop is NULL, then waitid() #. returns the PID of the child. Either this is a bug, or it is intended #. behavior that needs to be documented. See my Jan 2009 LKML mail #. "waitid() return value strangeness when infop is NULL". #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(): returns 0 on success or if B was specified and no " "child(ren) specified by I has yet changed state; on failure, -1 is " "returned." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "On failure, each of these calls sets I to indicate the error." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ERRORS" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The PID file descriptor specified in I is nonblocking and the process " "that it refers to has not terminated." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "(for B()) The calling process does not have any unwaited-for children." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "(for B() or B()) The process specified by I " "(B()) or I and I (B()) does not exist or is " "not a child of the calling process. (This can happen for one's own child if " "the action for B is set to B. See also the I " "section about threads.)" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B was not set and an unblocked signal or a B was caught; " "see B(7)." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The I argument was invalid." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "(for B() or B()) I is equal to B." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "VERSIONS" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "C library/kernel differences" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() is actually a library function that (in glibc) is implemented as " "a call to B(2)." msgstr "" #. e.g., i386 has the system call, but not x86-64 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On some architectures, there is no B() system call; instead, this " "interface is implemented via a C library wrapper function that calls " "B(2)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The raw B() system call takes a fifth argument, of type I. If this argument is non-NULL, then it is used to return " "resource usage information about the child, in the same manner as " "B(2). See B(2) for details." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX.1-2008." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "SVr4, 4.3BSD, POSIX.1-2001." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A child that terminates, but has not been waited for becomes a \"zombie\". " "The kernel maintains a minimal set of information about the zombie process " "(PID, termination status, resource usage information) in order to allow the " "parent to later perform a wait to obtain information about the child. As " "long as a zombie is not removed from the system via a wait, it will consume " "a slot in the kernel process table, and if this table fills, it will not be " "possible to create further processes. If a parent process terminates, then " "its \"zombie\" children (if any) are adopted by B(1), (or by the " "nearest \"subreaper\" process as defined through the use of the B(2) " "B operation); B(1) automatically performs a " "wait to remove the zombies." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX.1-2001 specifies that if the disposition of B is set to " "B or the B flag is set for B (see " "B(2)), then children that terminate do not become zombies and a " "call to B() or B() will block until all children have " "terminated, and then fail with I set to B. (The original " "POSIX standard left the behavior of setting B to B " "unspecified. Note that even though the default disposition of B is " "\"ignore\", explicitly setting the disposition to B results in " "different treatment of zombie process children.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Linux 2.6 conforms to the POSIX requirements. However, Linux 2.4 (and " "earlier) does not: if a B() or B() call is made while " "B is being ignored, the call behaves just as though B were " "not being ignored, that is, the call blocks until the next child terminates " "and then returns the process ID and status of that child." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Linux notes" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the Linux kernel, a kernel-scheduled thread is not a distinct construct " "from a process. Instead, a thread is simply a process that is created using " "the Linux-unique B(2) system call; other routines such as the " "portable B(3) call are implemented using B(2). " "Before Linux 2.4, a thread was just a special case of a process, and as a " "consequence one thread could not wait on the children of another thread, " "even when the latter belongs to the same thread group. However, POSIX " "prescribes such functionality, and since Linux 2.4 a thread can, and by " "default will, wait on children of other threads in the same thread group." msgstr "" #. commit 91c4e8ea8f05916df0c8a6f383508ac7c9e10dba #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following Linux-specific I are for use with children created " "using B(2); they can also, since Linux 4.7, be used with B():" msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<__WCLONE>" msgstr "" #. since 0.99pl10 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Wait for \"clone\" children only. If omitted, then wait for \"non-clone\" " "children only. (A \"clone\" child is one which delivers no signal, or a " "signal other than B to its parent upon termination.) This option " "is ignored if B<__WALL> is also specified." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<__WALL> (since Linux 2.4)" msgstr "" #. since patch-2.3.48 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")." msgstr "" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B<__WNOTHREAD> (since Linux 2.4)" msgstr "" #. since patch-2.4.0-test8 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Do not wait for children of other threads in the same thread group. This " "was the default before Linux 2.4." msgstr "" #. commit bf959931ddb88c4e4366e96dd22e68fa0db9527c #. prevents cases where an unreapable zombie is created if #. /sbin/init doesn't use __WALL. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Since Linux 4.7, the B<__WALL> flag is automatically implied if the child is " "being ptraced." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "According to POSIX.1-2008, an application calling B() must ensure " "that I points to a I structure (i.e., that it is a non-" "null pointer). On Linux, if I is NULL, B() succeeds, and " "returns the process ID of the waited-for child. Applications should avoid " "relying on this inconsistent, nonstandard, and unnecessary feature." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "" #. fork.2 refers to this example program. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following program demonstrates the use of B(2) and B(). " "The program creates a child process. If no command-line argument is " "supplied to the program, then the child suspends its execution using " "B(2), to allow the user to send signals to the child. Otherwise, if " "a command-line argument is supplied, then the child exits immediately, using " "the integer supplied on the command line as the exit status. The parent " "process executes a loop that monitors the child using B(), and uses " "the W*() macros described above to analyze the wait status value." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The following shell session demonstrates the use of the program:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$B< ./a.out &>\n" "Child PID is 32360\n" "[1] 32359\n" "$B< kill -STOP 32360>\n" "stopped by signal 19\n" "$B< kill -CONT 32360>\n" "continued\n" "$B< kill -TERM 32360>\n" "killed by signal 15\n" "[1]+ Done ./a.out\n" "$\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Program source" msgstr "" #. type: Plain text #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/types.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int wstatus;\n" " pid_t cpid, w;\n" "\\&\n" " cpid = fork();\n" " if (cpid == -1) {\n" " perror(\"fork\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " if (cpid == 0) { /* Code executed by child */\n" " printf(\"Child PID is %jd\\en\", (intmax_t) getpid());\n" " if (argc == 1)\n" " pause(); /* Wait for signals */\n" " _exit(atoi(argv[1]));\n" "\\&\n" " } else { /* Code executed by parent */\n" " do {\n" " w = waitpid(cpid, &wstatus, WUNTRACED | WCONTINUED);\n" " if (w == -1) {\n" " perror(\"waitpid\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " if (WIFEXITED(wstatus)) {\n" " printf(\"exited, status=%d\\en\", WEXITSTATUS(wstatus));\n" " } else if (WIFSIGNALED(wstatus)) {\n" " printf(\"killed by signal %d\\en\", WTERMSIG(wstatus));\n" " } else if (WIFSTOPPED(wstatus)) {\n" " printf(\"stopped by signal %d\\en\", WSTOPSIG(wstatus));\n" " } else if (WIFCONTINUED(wstatus)) {\n" " printf(\"continued\\en\");\n" " }\n" " } while (!WIFEXITED(wstatus) && !WIFSIGNALED(wstatus));\n" " exit(EXIT_SUCCESS);\n" " }\n" "}\n" msgstr "" #. SRC END #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B<_exit>(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), B(3), " "B(5), B(7), B(7)" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int wstatus;\n" " pid_t cpid, w;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " cpid = fork();\n" " if (cpid == -1) {\n" " perror(\"fork\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (cpid == 0) { /* Code executed by child */\n" " printf(\"Child PID is %jd\\en\", (intmax_t) getpid());\n" " if (argc == 1)\n" " pause(); /* Wait for signals */\n" " _exit(atoi(argv[1]));\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " } else { /* Code executed by parent */\n" " do {\n" " w = waitpid(cpid, &wstatus, WUNTRACED | WCONTINUED);\n" " if (w == -1) {\n" " perror(\"waitpid\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (WIFEXITED(wstatus)) {\n" " printf(\"exited, status=%d\\en\", WEXITSTATUS(wstatus));\n" " } else if (WIFSIGNALED(wstatus)) {\n" " printf(\"killed by signal %d\\en\", WTERMSIG(wstatus));\n" " } else if (WIFSTOPPED(wstatus)) {\n" " printf(\"stopped by signal %d\\en\", WSTOPSIG(wstatus));\n" " } else if (WIFCONTINUED(wstatus)) {\n" " printf(\"continued\\en\");\n" " }\n" " } while (!WIFEXITED(wstatus) && !WIFSIGNALED(wstatus));\n" " exit(EXIT_SUCCESS);\n" " }\n" "}\n" msgstr "" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: Plain text #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "" "#include Estdint.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/wait.hE\n" "#include Eunistd.hE\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int wstatus;\n" " pid_t cpid, w;\n" "\\&\n" " cpid = fork();\n" " if (cpid == -1) {\n" " perror(\"fork\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " if (cpid == 0) { /* Code executed by child */\n" " printf(\"Child PID is %jd\\en\", (intmax_t) getpid());\n" " if (argc == 1)\n" " pause(); /* Wait for signals */\n" " _exit(atoi(argv[1]));\n" "\\&\n" " } else { /* Code executed by parent */\n" " do {\n" " w = waitpid(cpid, &wstatus, WUNTRACED | WCONTINUED);\n" " if (w == -1) {\n" " perror(\"waitpid\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " if (WIFEXITED(wstatus)) {\n" " printf(\"exited, status=%d\\en\", WEXITSTATUS(wstatus));\n" " } else if (WIFSIGNALED(wstatus)) {\n" " printf(\"killed by signal %d\\en\", WTERMSIG(wstatus));\n" " } else if (WIFSTOPPED(wstatus)) {\n" " printf(\"stopped by signal %d\\en\", WSTOPSIG(wstatus));\n" " } else if (WIFCONTINUED(wstatus)) {\n" " printf(\"continued\\en\");\n" " }\n" " } while (!WIFEXITED(wstatus) && !WIFSIGNALED(wstatus));\n" " exit(EXIT_SUCCESS);\n" " }\n" "}\n" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""