| SLEEP(3) | Library Functions Manual | SLEEP(3) |
sleep — suspend
execution for an interval of seconds
#include
<unistd.h>
unsigned int
sleep(unsigned
int seconds);
The
sleep()
function suspends execution of the calling thread until at least the given
number of seconds have elapsed or an unmasked signal
is delivered to the calling thread.
This version of
sleep() is
implemented with nanosleep(2),
so delivery of any unmasked signal will terminate the sleep early, even if
SA_RESTART is set with
sigaction(2) for the
interrupting signal.
If sleep() sleeps for the full count of
seconds, it returns 0. Otherwise,
sleep() returns the number of seconds remaining from
the original request.
The sleep() function sets
errno to EINTR if it is
interrupted by the delivery of a signal.
The sleep() function conforms to
IEEE Std 1003.1-2008 (“POSIX.1”).
Setting errno is an extension to that specification.
A sleep() system call first appeared in
Version 2 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.
| March 31, 2022 | openbsd |