sleep(3C) sleep(3C)
NAME
sleep - Ausführung unterbrechen
SYNTAX
#include <unistd.h>
unsigned int sleep(unsigned int seconds);
BESCHREIBUNG
Durch die Funktion sleep() wird die Ausführung des laufenden Prozesses
angehalten, bis entweder die durch das Argument seconds angegebenen
Sekunden (in Echtzeit) abgelaufen sind, oder bis zur Auslieferung
eines Signals an den aufrufenden Prozeß, durch das eine Signalbehand-
lungsfunktion aufgerufen oder der Prozeß beendet wird. Die Unterbre-
chungszeit kann aufgrund anderer vom System angesetzter Aktivitäten
auch länger als angefordert sein.
Wird während der Ausführung von sleep() ein Signal SIGALRM für den
aufrufenden Prozeß erzeugt, und wird das Signal SIGALRM ignoriert oder
die Auslieferung des Signals blockiert, ist nicht definiert, ob
sleep() zurückkehrt, wenn das Signal SIGALRM ansteht. Wenn das Signal
blockiert wird, ist ferner nicht definiert, ob es nach Rückkehr von
sleep() unbearbeitet (pending) bleibt oder gelöscht wird.
Wird während der Ausführung von sleep() ein Signal SIGALRM für den
aufrufenden Prozeß erzeugt (und zwar nicht aufgrund eines vorhergehen-
den Aufrufs von alarm()), und wird das Signal SIGALRM weder ignoriert
noch seine Auslieferung blockiert, ist nicht definiert, ob dieses Sig-
nal irgendwelche anderen Auswirkungen hat, als die, daß sleep()
zurückkehrt.
Wenn eine Signalbehandlungsfunktion sleep() unterbricht und entweder
den Zeitpunkt, der für die Erzeugung eines Signals SIGALRM vorgesehen
ist, die dem Signal SIGALRM zugeordnete Aktion oder die Blockierung
der Auslieferung des Signals überprüft oder ändert, sind die Ergeb-
nisse undefiniert.
Wenn eine Signalbehandlungsfunktion sleep() unterbricht und
siglongjmp() oder longjmp() aufruft, um eine Umgebung wiederherzustel-
len, die vor dem sleep()-Aufruf gesichert wurde, sind die dem Signal
SIGALRM zugeordnete Aktion und die Zeit, für die die Erzeugung eines
Signals SIGALRM vorgesehen ist, unbestimmt. Ferner ist nicht defi-
niert, ob das Signal SIGALRM blockiert wird, sofern nicht die Signal-
maske des Prozesses als Teil der Umgebung wiederhergestellt wird.
Interaktionen zwischen sleep() und setitimer(), ualarm() oder usleep()
sind nicht definiert.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
sleep(3C) sleep(3C)
RÜCKGABEWERT
Wenn sleep() zurückkehrt, weil die angeforderte Zeit abgelaufen ist,
wird der Wert 0 zurückgegeben. Wenn sleep() aufgrund der Auslieferung
eines Signals vorzeitig zurückkehrt, wird die Zeit in Sekunden zurück-
gegeben, während der der Prozeß nicht pausiert hat (die angeforderte
Zeit minus der Zeit, die sich der Prozeß tatsächlich im Schlaf-Zustand
befand).
SIEHE AUCH
alarm(2), pause(2), sigaction(2), signal(2), wait(2), ualarm(3),
usleep(3), getitimer(3C), sigsetjmp(3C), unistd(4).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98