USLEEP(3)

NAZWA
usleep - zawiesza wykonanie na czas wyrażony w mikrosekundach

SKŁADNIA
#include <unistd.h>

int usleep(useconds_t usec);

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

usleep():
    Since glibc 2.12:
        (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L)
            || /* Glibc since 2.19: */ _DEFAULT_SOURCE
            || /* Glibc <= 2.19: */ _BSD_SOURCE
    Before glibc 2.12:
        _BSD_SOURCE || _XOPEN_SOURCE >= 500

OPIS
Funkcja usleep() zawiesza wykonanie wywołującego procesu na (co najmniej) usec mikrosekund. Zawieszenie może być delikatnie wydłużone przez jakąkolwiek aktywność systemu albo przez czas spędzony na przetwarzaniu wywołania, albo z powodu ziarnistości (częstotliwości odświeżania) liczników systemowych.

WARTOŚĆ ZWRACANA
The usleep() function returns 0 on success. On error, -1 is returned, with errno set to indicate the error.

BŁĘDY

EINTR
    Przerwane przez sygnał, patrz signal(7).

EINVAL
    usec jest większe lub równe 1000000. (Dla systemów, dla których jest to traktowane jako błąd).

ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs | Atrybut | Wartość
usleep() | Bezpieczeństwo wątkowe | MT-Safe

ZGODNE Z
4.3BSD, POSIX.1-2001. POSIX.1-2001 uznają tę funkcję jako przestarzałą, sugerując używanie zamiast niej funkcji nanosleep(2). POSIX.1-2008 usuwa opis funkcji usleep().

W oryginalnej implementacji BSD oraz w wersjach wcześniejszych niż 2.2.2 biblioteki glibc typem zwracanym przez tę funkcję był void. Wersja POSIX zwraca int, taki typ jest też zwracany przez glibc od wersji 2.2.2.

SUSv2 i POSIX.1-2001 dokumentują tylko błąd EINVAL.

UWAGI
Typ useconds_t jest typem unsigned integer, zdolnym do przechowywania liczb naturalnych z zakresu [0,1000000]. Programy będą bardziej przenośne, gdy nigdy nie użyją wprost tego typu. Proszę użyć

    #include <unistd.h>
    ...
        unsigned int usecs;
    ...
        usleep(usecs);

Interakcja tej funkcji z sygnałem SIGALRM oraz z innymi funkcjami licznikowymi, takimi jak alarm(2), sleep(3), nanosleep(2), setitimer(2), timer_create(2), timer_delete(2), timer_getoverrun(2), timer_gettime(2), timer_settime(2), ualarm(3) jest nieokreślona.

ZOBACZ TAKŻE
alarm(2), getitimer(2), nanosleep(2), select(2), setitimer(2), sleep(3), ualarm(3), time(7)

O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.13 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Robert Luberda <robert@debian.org> 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.