USLEEP(3) | Library Functions Manual | USLEEP(3)

# NAME

`usleep` — suspend process execution for interval measured in microseconds

# 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 microseconds microseconds have elapsed or a signal is delivered to the 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.

This function is implemented using nanosleep(2) by pausing for microseconds microseconds or until a signal occurs. Consequently, in this implementation, sleeping has no effect on the state of process timers, and there is no special handling for `SIGALRM`.

# RETURN VALUES

The `usleep`() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

# ERRORS

The `usleep`() function will fail if:

[`EINTR`]
  A signal was delivered to the process and its action was to invoke a signal-catching function.

# NOTES

A microsecond is 0.000001 seconds.

# SEE ALSO

sleep(1), nanosleep(2), sleep(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.

# CAVEATS

Some implementations of `usleep`() return an error if microseconds is greater than or equal to 1,000,000. Portable applications should be written with this limitation in mind.

June 5, 2013 | Debian