USLEEP(3)

NAME
usleep - suspend execution for interval in microseconds

SYNOPSIS
usleep(useconds)
unsigned useconds;

DESCRIPTION

Suspend the current process for the number of microseconds specified by the argument. The actual suspension time may be an arbitrary amount longer because of other activity in the system, or because of the time spent in processing the call.

The routine is implemented by setting an interval timer and pausing until it occurs. The previous state of this timer is saved and restored. If the sleep time exceeds the time to the expiration of the previous timer, the process sleeps only until the signal would have occurred, and the signal is sent a short time later.

This routine is implemented using setitimer() (see getitimer(2)); it requires eight system calls each time it is invoked. A similar but less compatible function can be obtained with a single select(2); it would not restart after signals, but would not interfere with other uses of setitimer.

SEE ALSO
getitimer(2), sigpause(2V), alarm(3V), sleep(3V), ualarm(3)