SLEEP(3)

NAME
sleep - suspend process execution for interval measured in seconds

SYNOPSIS
#include <unistd.h>
unsigned int
sleep(unsigned int seconds);

DESCRIPTION
The sleep() function suspends execution of the calling process until either seconds seconds have elapsed or a signal is delivered to the process and its action is to invoke a signal-catching function or to terminate the process. The suspension time may be longer than requested due to the scheduling of other activity by the system.

This function is implemented using nanosleep(2) by pausing for seconds seconds or until a signal occurs. Consequently, in this implementation, sleeping has no effect on the state of process timers, and there is no special handling for SIGALRM.

RETURN VALUES
If the sleep() function returns because the requested time has elapsed, the value returned will be zero. If the sleep() function returns due to the delivery of a signal, the value returned will be the unslept amount (the request time minus the time actually slept) in seconds.

SEE ALSO
sleep(1), nanosleep(2), usleep(3)

STANDARDS
The sleep() function conforms to p1003.1-90.

HISTORY
A sleep() system call first appeared in AT&T UNIX. In AT&T UNIX, it was removed and replaced by a C library implementation based on signal(3) and alarm(3). For OpenBSD 2.1, it was reimplemented as a wrapper around the nanosleep(2) system call.