Main index | Section 2 | Options |
#include <time.h>
If the TIMER_ABSTIME flag is set in the flags argument, then clock_nanosleep() suspends execution of the calling thread until either the value of the clock specified by the clock_id argument reaches the absolute time specified by the rqtp argument, or a signal is delivered to the calling process and its action is to invoke a signal-catching function or to terminate the process. If, at the time of the call, the time value specified by rqtp is less than or equal to the time value of the specified clock, then clock_nanosleep() returns immediately and the calling thread is not suspended.
The suspension time may be longer than requested due to the scheduling of other activity by the system. An unmasked signal will terminate the sleep early, regardless of the SA_RESTART value on the interrupting signal. The rqtp and rmtp arguments can point to the same object.
The following clock_id values are supported:
CLOCK_MONOTONIC | |
CLOCK_MONOTONIC_FAST | |
CLOCK_MONOTONIC_PRECISE | |
CLOCK_REALTIME | |
CLOCK_REALTIME_FAST | |
CLOCK_REALTIME_PRECISE | |
CLOCK_SECOND | |
CLOCK_UPTIME | |
CLOCK_UPTIME_FAST | |
CLOCK_UPTIME_PRECISE | |
The nanosleep() function behaves like clock_nanosleep() with a clock_id argument of CLOCK_REALTIME and without the TIMER_ABSTIME flag in the flags argument.
If these functions return for any other reason, then clock_nanosleep() will directly return the error number, and nanosleep() will return -1 with the global variable errno set to indicate the error. If a relative sleep is interrupted by a signal and rmtp is non- NULL, the timespec structure it references is updated to contain the unslept amount (the request time minus the time actually slept).
[EFAULT] | |
Either rqtp or rmtp points to memory that is not a valid part of the process address space. | |
[EINTR] | |
The function was interrupted by the delivery of a signal. | |
[EINVAL] | |
The rqtp argument specified a nanosecond value less than zero or greater than or equal to 1000 million. | |
[EINVAL] | |
The flags argument contained an invalid flag. | |
[EINVAL] | |
The clock_id argument was CLOCK_THREAD_CPUTIME_ID or an unrecognized value. | |
[ENOTSUP] | |
The clock_id argument was valid but not supported by this implementation of clock_nanosleep(). | |
NANOSLEEP (2) | March 17, 2017 |
Main index | Section 2 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | An ASCII character walks into a bar and orders a double. "Having a bad day?" asks the barman. "Yeah, I have a parity error," replies the ASCII character. The barman says, "Yeah, I thought you looked a bit off." | ” |