sleep(3) Library Functions Manual sleep(3)
sleep - suspend execution for interval
The current process is suspended from execution for the number of seconds specified by the argument. The actual suspension time may be up
to 1 second less than that requested, because scheduled wakeups occur at fixed 1-second intervals, and an arbitrary amount longer because
of other activity in the system.
The routine is implemented by setting an interval timer and pausing until it occurs. The previous state of this timer is saved and
restored. If the sleep time exceeds the time to the expiration of the previous timer, the process sleeps only until the signal would have
occurred, and the signal is sent 1 second later.
The value returned by is the unslept amount(the requested time minus the time actually slept). This return value may be non-zero in cases
where the caller had an alarm set to go off earlier than the end of the requested time, or where was interrupted due to a caught signal(see
When your program is compiled in POSIX or System V mode, the will be terminated by any caught signal. The function will return following
execution of the signal's catching routine.