SLEEP(3) | Library Functions Manual | SLEEP(3) |
sleep
— suspend
process execution for interval measured in seconds
#include
<unistd.h>
unsigned int
sleep
(unsigned
int seconds);
The sleep
() function suspends execution of
the calling process until either seconds seconds have
elapsed or a signal is delivered to the process and its action is to invoke
a signal-catching function or to terminate the process. The suspension time
may be longer than requested due to the scheduling of other activity by the
system.
This function is implemented using
nanosleep(2) by pausing for
seconds seconds or until a signal occurs.
Consequently, in this implementation, sleeping has no effect on the state of
process timers, and there is no special handling for
SIGALRM
.
If the sleep
() function returns because
the requested time has elapsed, the value returned will be zero. If the
sleep
() function returns due to the delivery of a
signal, the value returned will be the unslept amount (the request time
minus the time actually slept) in seconds.
The sleep
() function conforms to
IEEE Std 1003.1-1990 (“POSIX.1”).
A sleep
() system call first appeared in
Version 3 AT&T UNIX. In
Version 7 AT&T UNIX, it was removed and
replaced by a C library implementation based on
signal(3) and
alarm(3). For OpenBSD
2.1, it was reimplemented as a wrapper around the
nanosleep(2) system call.
February 21, 2014 | OpenBSD-current |