usleep()

Приостановить поток на заданное количество микросекунд

Прототип:

#include <unistd.h>
int usleep( useconds_t useconds );

Аргументы:

useconds
Количество миллисекунд, на которое процесс будет приостановлен. Должен быть меньше чем 1,000,000.

Библиотека:

libc

Описание:

Функция usleep() приостанавливает вызывающий поток до того как не пройдёт useconds миллисекунд реального времени, или до получения сигнала, который не игнорируется. Время реальной приостановки может быть больше запрашиваемого из-за природы измерения времени, или из-за работы других более приоритетных потоков.

Если useconds равен 0, usleep() не будет иметь эффекта.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EAGAIN
Ресурсы таймера не доступны для удовлетворения запроса.
EINVAL
Аргумент useconds слишком велик.

Примеры:

/*
* Следующая программа засыпает на
* определённое в 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);
}

Классификация:

POSIX 1003.1 XSI

Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

alarm(), delay(), nanosleep(), sigaction(), sleep(), timer_create(), timer_delete(), timer_getoverrun(), timer_gettime(), timer_settime(), ualarm()




Предыдущий раздел: Описание API системной библиотеки