usleep(3C)


usleep -- suspend process for interval in microseconds

Synopsis

   #include <unistd.h> 
   

int usleep(useconds_t useconds);

Description

The usleep function suspends the current process from execution for the number of microseconds specified by the useconds argument. Because of other activity, or because of the time spent in processing the call, the actual suspension time may be longer than the amount of time specified.

The useconds argument must be less than 1,000,000. If the value of useconds is 0, then the call has no effect.

The usleep function uses the process' real-time interval timer to indicate to the system when the process should be woken up. There is one real-time interval timer for each process. The usleep function will not interfere with a previous setting of this timer; the previous state of this timer is saved and restored. If the process has set this timer prior to calling usleep, and if the time specified by useconds equals or exceeds the interval timer's prior setting, the process will be woken up shortly before the original timer was set to expire and the signal is sent a short time later.

Return value

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

Errors

The usleep function may fail if:

EINVAL
The useconds argument specified 1,000,000 or more microseconds.

Usage

This routine is implemented using setitimer and requires eight system calls each time it is invoked.

Compatibility

The usleep function is included for its historical usage. The setitimer function is preferred over this function. See getitimer(3C).

References

alarm(2), getitimer(3C), sigaction(2), signal(2), sleep(3C), usleep(3C)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004