Originální popis anglicky:
usleep - suspend execution for an interval
Návod, kniha: POSIX Programmer's Manual
#include <unistd.h>
int usleep(useconds_t
useconds);
The
usleep() function shall cause the calling thread to be suspended from
execution until either the number of realtime microseconds specified by the
argument
useconds has elapsed or a signal is delivered to the calling
thread 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.
The
useconds argument shall be less than one million. If the value of
useconds is 0, then the call has no effect.
If a SIGALRM signal is generated for the calling process during execution of
usleep() and if the SIGALRM signal is being ignored or blocked from
delivery, it is unspecified whether
usleep() returns when the SIGALRM
signal is scheduled. If the signal is being blocked, it is also unspecified
whether it remains pending after
usleep() returns or it is discarded.
If a SIGALRM signal is generated for the calling process during execution of
usleep(), except as a result of a prior call to
alarm(), and if
the SIGALRM signal is not being ignored or blocked from delivery, it is
unspecified whether that signal has any effect other than causing
usleep() to return.
If a signal-catching function interrupts
usleep() and examines or changes
either the time a SIGALRM is scheduled to be generated, the action associated
with the SIGALRM signal, or whether the SIGALRM signal is blocked from
delivery, the results are unspecified.
If a signal-catching function interrupts
usleep() and calls
siglongjmp() or
longjmp() to restore an environment saved prior
to the
usleep() call, the action associated with the SIGALRM signal and
the time at which a SIGALRM signal is scheduled to be generated are
unspecified. It is also unspecified whether the SIGALRM signal is blocked,
unless the process' signal mask is restored as part of the environment.
Implementations may place limitations on the granularity of timer values. For
each interval timer, if the requested timer value requires a finer granularity
than the implementation supports, the actual timer value shall be rounded up
to the next supported value.
Interactions between
usleep() and any of the following are unspecified:
nanosleep()
setitimer()
timer_create()
timer_delete()
timer_getoverrun()
timer_gettime()
timer_settime()
ualarm()
sleep()
Upon successful completion,
usleep() shall return 0; otherwise, it shall
return -1 and set
errno to indicate the error.
The
usleep() function may fail if:
- EINVAL
- The time interval specified one million or more
microseconds.
The following sections are informative.
None.
Applications are recommended to use
nanosleep() if the Timers option is
supported, or
setitimer(),
timer_create(),
timer_delete(),
timer_getoverrun(),
timer_gettime(), or
timer_settime() instead of this function.
None.
None.
alarm() ,
getitimer() ,
nanosleep() ,
sigaction() ,
sleep() ,
timer_create() ,
timer_delete() ,
timer_getoverrun() , the Base Definitions volume of
IEEE Std 1003.1-2001,
<unistd.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html
.