NAME
usleep
—
suspend execution for interval of
microseconds
SYNOPSIS
#include
<unistd.h>
int
usleep
(useconds_t
microseconds);
DESCRIPTION
The
usleep
()
function suspends execution of the calling process for
microseconds microseconds of time. System activity or
time spent in processing the call may lengthen the sleep slightly.
This routine is implemented using
nanosleep(2); it requires one system call each time it is invoked. A
similar but less compatible function can be obtained with a single
select(2); such a function would not restart after signals, and also
does not interfere with other uses of
setitimer(2) (not that
usleep
()
interferes with interval timers anymore).
RETURN VALUES
If the usleep
() function returns because
the requested time has elapsed, the value returned will be zero.
If the usleep
() function returns due to
the delivery of a signal, the value returned will be -1, and the global
variable errno will be set to indicate the
interruption.
ERRORS
If any of the following conditions occur, the
usleep
() function shall return -1 and set
errno to the corresponding value.
- [
EINTR
] usleep
() was interrupted by the delivery of a signal.- [
EINVAL
] - microseconds specified a value of 1,000,000 or more microseconds.
NOTES
A microsecond is 0.000001 seconds.
SEE ALSO
sleep(1), getitimer(2), nanosleep(2), setitimer(2), alarm(3), sigpause(3), sleep(3), ualarm(3)
STANDARDS
The usleep
() function conforms to
X/Open Portability Guide Issue 4, Version 2
(“XPG4.2”).
HISTORY
The usleep
() function appeared in
4.3BSD.