Scroll to navigation

USLEEP(3) Linux-Programmierhandbuch USLEEP(3)

BEZEICHNUNG

usleep - unterbricht die Ausführung für Mikrosekunden-Intervalle

ÜBERSICHT

#include <unistd.h>
int usleep(useconds_t usec);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

usleep():

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

|| /* Glibc seit 2.19: */ _DEFAULT_SOURCE
|| /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE
_BSD_SOURCE || _XOPEN_SOURCE >= 500

BESCHREIBUNG

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.

RÜCKGABEWERT

Die Funktion usleep() liefert im Erfolgsfall 0 zurück. Im Fehlerfall wird -1 zurückgeliefert, wobei errno gesetzt wird, um den Grund des Fehlers anzuzeigen.

FEHLER

Durch ein Signal unterbrochen, siehe signal(7).
usec ist größer als oder identisch zu 1000000. (Auf Systemen, auf denen das als Fehler angesehen wird.)

ATTRIBUTE

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

Schnittstelle Attribut Wert
usleep() Multithread-Fähigkeit MT-Safe

KONFORM ZU

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 glibc vor Version 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.

ANMERKUNGEN

Der Typ useconds_t ist ein »unsigned integer« und kann Zahlen im Bereich [0,1.000.000] aufnehmen. Programme werden besser portierbar, wenn sie diesen Typ nie ausdrücklich erwähnen. Verwenden Sie


#include <unistd.h>
…

unsigned int Mikrosekunden; …
usleep(Mikrosekunden);

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.

SIEHE AUCH

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

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net> und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> 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.

15. September 2017