usleep - задерживает выполнение операции на определенное количество микросекунд
СИНТАКСИС
/* BSD version */
#include <unistd.h> void usleep(unsigned long usec);
/* SUSv2 version */
#define _XOPEN_SOURCE 500 #include <unistd.h> int usleep(useconds_t usec);
ОПИСАНИЕ
Функция usleep() приостанавливает выполнение процесса на
usec микросекунд. Остановка может продлиться несколько больше
из-за системной активности или из-за того, что для осуществления
вызова требуется определенное время.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функция ничего не возвращает (BSD). Или возвращается 0 при номальном
завершении работы и -1 при ошибках (SUSv2).
СООБЩЕНИЕ ОБ ОШИБКАХ
EINTR
Прервано сигналом.
EINVAL
usec больше, чем 1000000.
(В тех системах, где это условие вызывает ошибку.)
СООТВЕТСТВИЕ СТАНДАРТАМ
Стандарт BSD 4.3.
В версиях SUSv2 возвращается целое число, и это тот прототип,
что используется в glibc 2.2.2.
В SUSv2 указано, что возвращаться может только ошибка EINVAL.
ЗАМЕЧАНИЯ
Тип
useconds_t
является беззнаковым целым типом, способным определять целые числа
в диапазоне [0,1000000]. Программы будут иметь более высокий уровень
переносимости на другие ОС, если они никогда не будут явно упоминать
этот тип. Используйте
#include <unistd.h>
...
unsigned int usecs;
...
usleep(usecs);
Этот тип определен
<sys/types.h>
включенным с помощью
<unistd.h>
но glibc определяет его только когда _XOPEN_SOURCE имеет значение не меньше 500,
или если определены одновременно и _XOPEN_SOURCE, и _XOPEN_SOURCE_EXTENDED.
Взаимодействие этой функции с сигналом SIGALRM
и другими функциями таймера, такими как
alarm(),
sleep(),
nanosleep(),
setitimer(),
timer_create(),
timer_delete(),
timer_getoverrun(),
timer_gettime(),
timer_settime(),
ualarm()
неопределено.
Эта функция устарела. Используйте вместо нее функции
nanosleep(2)
или
setitimer(2).