POSIX provides software timers to multithreaded and real-time user space applications, known as POSIX timers. POSIX provides the following clocks:
- CLOCK_REALTIME: This clock represents the real time in the system. Also known as the wall time, it's similar to the time from a wall clock and used for timestamping as well as providing actual time to the user. This clock is modifiable.
- CLOCK_MONOTONIC: This clock keeps the time elapsed since the system bootup. It's ever increasing and non modifiable by any process or user. Due to its monotonic nature, it's the the preferred clock to determine the time difference between two time events.
- CLOCK_BOOTTIME: This clock is identical to CLOCK_MONOTONIC; however, it includes time spent in suspend.
These clocks can be accessed and modified (if the selected clock allows it) through the following POSIX clock routines...