nanosleep - Suspends a process from execution for the
specified timer interval (P1003.1b)
int nanosleep ( const struct timespec *rqtp, struct timespec
Realtime Library (librt.so, librt.a)
A pointer to the timespec data structure that defines the
time interval during which the calling process is suspended.
A pointer to the timespec data structure that
receives the amount of time remaining in the previously
requested interval, or zero if the full interval has
The nanosleep function suspends a process until one of the
following conditions is met: The time interval specified
in rqtp has elapsed. A signal is delivered to the calling
process and the action is to deliver a signal to a signalcatching
function (or to terminate the process).
The suspension time may be longer than requested because
the argument value is rounded up to an integer multiple of
the clock resolution, or due to the scheduling of other
activity. Except when it is interrupted by a signal, the
suspension time is not less than the time specified by the
rqtp argument (as measured by the system clock).
When the nanosleep function returns because the requested
time has elapsed, the call is successful and a value of 0
(zero) is returned.
If the nanosleep function returns because it was interrupted
by a signal, a value of -1 is returned. If the
rmtp argument is not NULL, the timespec structure referenced
by the call is updated to contain the time remaining
in the interval.
If the rmtp argument is NULL, the remaining time is not
On an unsuccessful call, a value of -1 is returned and
errno is set to indicate that an error occurred.
The nanosleep function fails under the following conditions:
The nanosleep function was interrupted by a signal.
The rqtp argument specified a nanosecond value less than
zero or greater than or equal to 1000 million.
Guide to Realtime Programming
[ Back ]