USLEEP(3)

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.

April 22, 2024 | NetBSD 10.1