NANOSLEEP(2) |
System Calls Manual |
NANOSLEEP(2) |
NAME
nanosleep — high resolution sleep
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <time.h>
int
nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
DESCRIPTION
The
nanosleep() suspends execution of the calling process until either the number of seconds and nanoseconds specified by
rqtp have elapsed or a signal is delivered to the calling 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. The
struct timespec is described in
timespec(3).
RETURN VALUES
If the
nanosleep() function returns because the requested time 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 the -1, and the global variable errno will be set to indicate the interruption. If rmtp is non-NULL, the timespec structure it references is updated to contain the unslept amount (the request time minus the time actually slept).
ERRORS
If any of the following conditions occur, the
nanosleep function shall return -1 and set
errno to the corresponding value.
-
[EFAULT]
-
Either rqtp or rmtp points to memory that is not a valid part of the process address space.
-
[EINTR]
-
nanosleep was interrupted by the delivery of a signal.
-
[EINVAL]
-
rqtp specified a nanosecond value less than zero or greater than 1000 million.
-
[ENOSYS]
-
nanosleep is not supported by this implementation.
STANDARDS
The nanosleep() function conforms to IEEE Std 1003.1b-1993 (“POSIX.1”).