NANOSLEEP(2) | System Calls Manual | NANOSLEEP(2) |
nanosleep
— high
resolution sleep
#include
<time.h>
int
nanosleep
(const
struct timespec *timeout,
struct timespec
*remainder);
nanosleep
()
suspends execution of the calling process for the duration specified by
timeout. An unmasked signal will cause it to terminate
the sleep early, regardless of the SA_RESTART
value
on the interrupting signal.
If the nanosleep
() function returns
because the requested duration has elapsed, the value returned will be
zero.
If the nanosleep
() function returns due to
the delivery of a signal, the value returned will be -1, and the global
variable errno will be set to indicate the
interruption. If remainder is non-null, the timespec
structure it references is updated to contain the unslept amount (the
requested duration minus the duration actually slept).
If any of the following conditions occur, the
nanosleep
() function shall return -1 and set
errno to the corresponding value.
EINTR
]nanosleep
() was interrupted by the delivery of a
signal.EINVAL
]EFAULT
]The nanosleep
() function conforms to
IEEE Std 1003.1-2008 (“POSIX.1”).
The predecessor of this system call,
sleep
(), appeared in
Version 3 AT&T UNIX, but was removed when
alarm(3) was introduced into
Version 7 AT&T UNIX. The
nanosleep
() system call has been available since
NetBSD 1.3 and was ported to
OpenBSD 2.1 and FreeBSD
3.0.
May 31, 2015 | OpenBSD-6.4 |