SLEEP(3C) SysV SLEEP(3C)
NAME
sleep - suspend execution for interval
SYNOPSIS
unsigned sleep (seconds)
unsigned seconds;
DESCRIPTION
The current process is suspended from execution for the number of seconds
specified by the argument. The actual suspension time may be less than
that requested for two reasons: (1) Because scheduled wakeups occur at
fixed 1-second intervals, (on the second, according to an internal clock)
and (2) because any caught signal will terminate the sleep following
execution of that signal's catching routine. Also, the suspension time
may be longer than requested by an arbitrary amount due to the scheduling
of other activity in the system. The value returned by sleep will be the
"unslept" amount (the requested time minus the time actually slept) in
case the caller had an alarm set to go off earlier than the end of the
requested sleep time, or premature arousal due to another caught signal.
The routine is implemented by setting an alarm signal and pausing until
it (or some other signal) occurs. The previous state of the alarm signal
is saved and restored. The calling program may have set up an alarm
signal before calling sleep. If the sleep time exceeds the time till
such alarm signal, the process sleeps only until the alarm signal would
have occurred. The caller's alarm catch routine is executed just before
the sleep routine returns. But if the sleep time is less than the time
till such alarm, the prior alarm time is reset to go off at the same time
it would have without the intervening sleep.
SEE ALSO
alarm(2), pause(2), signal(2).