USLEEP(3)

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

SKŁADNIA
/* wersja BSD */
#include <unistd.h>

void usleep(unsigned long usec);

/* wersja SUSv2 */
#define _XOPEN_SOURCE 500
#include <unistd.h>

int usleep(useconds_t usec);

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 rzez czas spędzony na przetwarzaniu wywołania, albo z powodu niepodzielności liczników systemowych.

WARTOŚĆ ZWRACANA
Nic (BSD). Albo: 0 w razie powodzenia, -1 w razie błędu (SUSv2).

BŁĘDY

EINTR
    Przerwane przez sygnał.

EINVAL
    usec nie jest mniejsze niż 1000000. (Dla systemów, dla których jest to traktowane jako błąd).

ZGODNE Z
4.3BSD. Wersja SUSv2 zwraca int i jest to także prototyp używany przez glibc 2.2.2. SUSv2 dokumentuje 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);

Typ jest zdefiniowany w <sys/types.h> włączanym przez <unistd.h>, jednak glibc definiuje go tylko wtedy, gdy _XOPEN_SOURCE ma wartość nie mniejszą niż 500, albo gdy zarówno _XOPEN_SOURCE, jak i _XOPEN_SOURCE_EXTENDED jest zdefiniowane.

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

Funkcja jest przestarzała. Proszę używać nanosleep(2) lub setitimer(2) zamiast niej.

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