usleep - unterbricht die Ausführung für Mikrosekunden-Intervalle
Standard-C-Bibliothek (
libc,
-lc)
#include <unistd.h>
int usleep(useconds_t usec);
usleep():
Seit Glibc 2.12:
(_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L)
|| /* Glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* Glibc <= 2.19: */ _BSD_SOURCE
Vor Glibc 2.12:
_BSD_SOURCE || _XOPEN_SOURCE >= 500
Die Funktion
usleep() unterbricht die Ausführung des aufrufenden
Threads für (wenigstens)
usec Mikrosekunden. Das Schlafen kann
durch Systemaktivitäten, die Zeit für die Bearbeitung des
Aufrufs und die Auflösung der System-Timer geringfügig
verlängert werden.
Die Funktion
usleep() liefert im Erfolgsfall 0 zurück. Im
Fehlerfall wird -1 zurückgeliefert und
errno gesetzt, um den
Fehler anzuzeigen.
- EINTR
- Durch ein Signal unterbrochen, siehe signal(7).
- EINVAL
-
usec ist größer als oder identisch zu
1000000. (Auf Systemen, auf denen das als Fehler angesehen wird.)
Siehe
attributes(7) für eine Erläuterung der in diesem
Abschnitt verwandten Ausdrücke.
Schnittstelle |
Attribut |
Wert |
usleep() |
Multithread-Fähigkeit |
MT-Safe |
4.3BSD, POSIX.1-2001. POSIX.1-2001 erklärt diese Funktion für
überholt und empfiehlt stattdessen die Verwendung von
nanosleep(2). POSIX.1-2008 entfernt die Spezifikation von
usleep().
In der ursprünglichen BSD-Implementierung und vor Glibc 2.2.2 ist der
Rückgabewert dieser Funktion vom Typ
void. Die POSIX-Version
gibt
int zurück und dies gilt auch für den seit Glibc
2.2.2 verwendeten Prototyp.
SUSv2 und POSIX.1-2001 dokumentieren nur die Fehlernummer
EINVAL.
Das Zusammenspiel dieser Funktion mit dem Signal
SIGALRM und mit anderen
Timer-Funktionen wie
alarm(2),
sleep(3),
nanosleep(2),
setitimer(2),
timer_create(2),
timer_delete(2),
timer_getoverrun(2),
timer_gettime(2),
timer_settime(2)
und
ualarm(3) ist nicht festgelegt.
alarm(2),
getitimer(2),
nanosleep(2),
select(2),
setitimer(2),
sleep(3),
ualarm(3),
useconds_t(3type),
time(7)
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<
[email protected]> und Martin Eberhard Schauer
<
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer