Kernel measures the passage of the time in three different ways:
- Wall time ---> measuring absolute time
- Process time
- Monotonic time ---> calculating relative time
Unix systems represent absolute time as the number of elapsed seconds since the epoch, which is defined as 00:00:00 UTC on the morning of 1 January 1970.
SO, even absolute time is, at a low level, relative time.
The following table shows some useful functions for uing time:
Name | second | Microsecond | Nanosecond |
---|---|---|---|
Getting the current time of day | time() | gettimeofday() | clock_gettime() |
Setting the current time of day | stime() | settimeofday() | clock_settime() |
Sleeping | sleep() | usleep() | nanosleep() |
Now Microsoft, ipod nano are in my mind, are these names from here? So interesting.
With a 32-bit long type, time_t will let us have the Y2K mess all over again --- in 2038!
and "Come 22:14:07 on Monday, 18 January 2038, most systems and software will be 64-bit." said Robert Love. Will these happen, let's go and see.
POSIX Clocks have four of the linux standard time source:
- CLOCK_MONOTONIC
- CLOCK_PROCESS_CPUTIME_ID
- CLOCK_REALTIME
- CLOCK_THREAD_CPUTIME_ID
make looks at the file modification timestamps of the source file versus the object file. If the source file is newer than the object file, make rebuilds the source file into an updated object file. If the source file is not newer than the object, however, no action is taken