adjtime - smoothly tune kernel clock
int adjtime(const struct timeval *delta, struct timeval *olddelta);
This function speeds up or slows down the system clock in order to make a gradual adjustment. This ensures that the calendar time reported by the system clock is always monotonically increasing, which might not happen if you simply set the clock.
The delta argument specifies a relative adjustment to be made to the clock time. If negative, the system clock is slowed down fora while until it has lost this much elapsed time. If positive, the system clock is speeded up for a while.
If the olddelta argument is not a null pointer, the adjtime function returns information about any previous time adjustment that has not yet completed.
This function is typically used to synchronize the clocks of computers in a local network. You must be a privileged user to use it.
The adjtime function returns 0 on success and -1 on failure and sets the external variable errno accordingly.
EPERM The calling process does not have enough privileges to access the clock.
With a Linux kernel, you can use the adjtimex(2) function to permanently change the system clock speed.
This function is derived from 4.3 BSD and SVr4.