DOKK / manpages / debian 10 / manpages-pl-dev / usleep.3.pl
USLEEP(3) Podręcznik programisty Linuksa USLEEP(3)

usleep - zawiesza wykonanie na czas wyrażony w mikrosekundach

#include <unistd.h>

int usleep(useconds_t usec);


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

usleep():

(_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L)

|| /* Glibc od 2.19: */ _DEFAULT_SOURCE
|| /* Glibc w wersji <= 2.19: */ _BSD_SOURCE

Przed glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500

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.

Funkcja usleep() w przypadku powodzenia zwraca 0. W razie wystąpienia błędu zwracane jest -1 i ustawiana jest zmienna errno wskazując na błąd.

Przerwane przez sygnał, patrz signal(7).
usec nie jest mniejsze niż 1000000. (Dla systemów, dla których jest to traktowane jako błąd).

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

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.

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.

alarm(2), getitimer(2), nanosleep(2), select(2), setitimer(2), sleep(3), ualarm(3), time(7)

Angielska wersja tej strony pochodzi z wydania 4.07 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/.

Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 4.07 oryginału.

2016-03-15