| USLEEP(3) | Library Functions Manual | USLEEP(3) |
usleep — suspend
execution for interval of microseconds
Standard C Library (libc, -lc)
#include
<unistd.h>
int
usleep(useconds_t
microseconds);
The
usleep()
function suspends execution of the calling process until either the number
of microseconds specified by microseconds have elapsed
or a signal is delivered to the calling 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.
On successful completion, usleep() returns
0. Otherwise, it returns -1 and sets errno to indicate
the error.
The usleep() function may fail if:
EINTR]usleep was interrupted by the delivery of a
signal.The usleep() function conforms to
X/Open Portability Guide Issue 4, Version 2
(“XPG4.2”). It later appeared in the POSIX standard,
but in IEEE Std 1003.1-2004
(“POSIX.1”) it was marked as legacy and the use of
nanosleep(2) was
recommended instead. The IEEE Std 1003.1-2008
(“POSIX.1”) revision removed
usleep() from the specification.
The usleep() function appeared in
4.3BSD.
In IEEE Std 1003.1-2004
(“POSIX.1”), usleep was limited
to values of microseconds less than one million. Some
implementations, including NetBSD before 10.1, fail
immediately with EINVAL — and don't sleep at
all — if microseconds is one million or
greater.
| April 22, 2024 | NetBSD 11.0 |