wait4(2)

NAZWA
wait3, wait4 - oczekuje na zmianę stanu (styl BSD)

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#include <sys/wait.h>

pid_t wait3(int *_Nullable wstatus, int options,
            struct rusage *_Nullable rusage);
pid_t wait4(pid_t pid, int *_Nullable wstatus, int options,
            struct rusage *_Nullable rusage);

    Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

wait3():
    Od glibc 2.26:
        _DEFAULT_SOURCE
            || (_XOPEN_SOURCE >= 500 &&
                ! (_POSIX_C_SOURCE >= 200112L
                   || _XOPEN_SOURCE >= 600))
    Od glibc 2.19 do glibc 2.25:
        _DEFAULT_SOURCE || _XOPEN_SOURCE >= 500
    glibc 2.19 i wcześniejsze:
        _BSD_SOURCE || _XOPEN_SOURCE >= 500

wait4():
    Od glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 i wcześniejsze:
        _BSD_SOURCE

OPIS
Funkcje te są niestandardowe, w nowych programach preferuje się korzystanie z waitpid(2) lub waitid(2).

Wywołania systemowe wait3() i wait4() są podobne do waitpid(2), lecz dodatkowo zwracają informacje o użyciu zasobów przez potomka, w strukturze, na którą wskazuje rusage.

Poza korzystaniem z argumentu rusage, następujące wywołanie wait3():

    wait3(wstatus, options, rusage);

jest równoznaczne z:

    waitpid(-1, wstatus, options);

Podobnie, poniższe wywołanie wait4():

    wait4(pid, wstatus, options, rusage);

jest równoznaczne z:

    waitpid(pid, wstatus, options);

Innymi słowy, wait3() oczekuje na dowolnego potomka, natomiast wait4() można użyć do wybrania konkretnego potomka lub potomków, na których wywołanie ma oczekiwać. Więcej informacji w podręczniku wait(2).

Jeśli rusage nie jest równe NULL, to struktura struct rusage, na którą rusage wskazuje, zostanie wypełniona informacjami o wykorzystywaniu zasobów przez potomka. Szczegóły znajdują się w podręczniku getrusage(2).

WARTOŚĆ ZWRACANA
Jak w waitpid(2).

BŁĘDY
Jak w waitpid(2).

STANDARDY
Brak.

HISTORIA
4.3BSD.

SUSv1 określało wait3(); SUSv2 określało wait3(), lecz z oznaczeniem LEGACY (przestarzałe); usunięte w SUSv3.

Dołączenie <sys/time.h> nie jest obecnie wymagane, lecz zwiększa przenośność. (Faktycznie, <sys/resource.h> zawiera definicje struktury rusage z polami typu struct timeval zdefiniowanego w <sys/time.h>).

  Różnice biblioteki C/jądra
W Linuksie, wait3() jest funkcją biblioteczną zaimplementowaną na wywołaniu systemowym wait4().

ZOBACZ TAKŻE
fork(2), getrusage(2), sigaction(2), signal(2), wait(2), signal(7)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.