wait4(2) System Calls Manual wait4(2)

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

Standardowa biblioteka C (libc, -lc)

#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

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ównoważne:


waitpid(-1, wstatus, options);

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


wait4(pid, wstatus, options, rusage);

jest równoważne:


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).

Jak w waitpid(2).

Jak w waitpid(2).

Brak.

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>).

W Linuksie, wait3() jest funkcją biblioteczną zaimplementowaną na wywołaniu systemowym wait4().

fork(2), getrusage(2), sigaction(2), signal(2), wait(2), signal(7)

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: 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 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.

2 maja 2024 r. Linux man-pages 6.8