Suspend a thread for a given number of microseconds
#include <unistd.h> int usleep( useconds_t useconds );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The usleep() function suspends the calling thread until useconds microseconds of realtime have elapsed, or until a signal that isn't ignored is received. The time spent suspended could be longer than the requested amount due to the nature of time measurement (see the Understanding the Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide), or due to the scheduling of other, higher-priority threads.
If useconds is 0, usleep() has no effect.
/* * The following program sleeps for the * number of microseconds specified in argv[1]. */ #include <stdlib.h> #include <unistd.h> int main( int argc, char **argv ) { useconds_t microseconds; microseconds = (useconds_t)strtol( argv[1], NULL, 0 ); if( usleep( microseconds ) == 0 ) { return EXIT_SUCCESS; } return EXIT_FAILURE; }
Standard Unix; removed from POSIX.1-2008
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |