This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Get or set a clock
#include <sys/neutrino.h> int ClockTime( clockid_t id, const uint64_t * new, uint64_t * old ); int ClockTime_r( clockid_t id, const uint64_t * new, uint64_t * old );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
You can use these kernel calls to get or set the system clock specified by id. The clock ID, CLOCK_REALTIME or CLOCK_MONOTONIC, maintains the system time.
The ClockTime() and ClockTime_r() functions are identical except in the way they indicate errors. See the Returns section for details.
Instead of using these kernel calls directly, consider calling clock_gettime() or clock_settime(). |
If new isn't NULL, then it contains the absolute time, in nanoseconds, to set the system clock to. This affects the software clock maintained by the system. It doesn't change any underlying hardware clock that maintains the time when the system's power is turned off.
You can't set the time when the id is CLOCK_MONOTONIC. |
Once set, the system time increments by some number of nanoseconds, based on the resolution of the system clock. You can query or change this resolution by using the ClockPeriod() kernel call.
You need to have superuser privileges to set the clock. |
These calls don't block.
The only difference between these functions is the way they indicate errors:
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
clock_gettime(), clock_settime(), ClockAdjust(), ClockPeriod()