Updated: 2025/Nov/16

Please read Privacy Policy. It's for your privacy.


USLEEP(3)                  Library Functions Manual                  USLEEP(3)

NAME
     usleep - suspend execution for interval of microseconds

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <unistd.h>

     int
     usleep(useconds_t microseconds);

DESCRIPTION
     This interface is obsoleted by nanosleep(2).

     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.

RETURN VALUES
     On successful completion, usleep() returns 0.  Otherwise, it returns -1
     and sets errno to indicate the error.

ERRORS
     The usleep() function may fail if:

     [EINTR]            usleep was interrupted by the delivery of a signal.

SEE ALSO
     nanosleep(2), sleep(3)

STANDARDS
     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.

HISTORY
     The usleep() function appeared in 4.3BSD.

CAVEATS
     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.

NetBSD 11.99                    April 22, 2024                    NetBSD 11.99