USLEEP(3) | Library Functions Manual | USLEEP(3) |
usleep
—
#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.
usleep
() returns 0. Otherwise,
it returns -1 and sets errno to indicate the error.
usleep
() function may fail if:
EINTR
]usleep
was interrupted by the delivery of a
signal.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.
usleep
() function appeared in
4.3BSD.
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 10.1 |