delay()

Приостановить вызывающий поток на заданное время

Прототип:

#include <unistd.h>
unsigned int delay( unsigned int duration );

Аргументы:

duration
Количество миллисекунд, на которое приостановится вызывающий поток.

Библиотека:

libc

Описание:

Функция delay() приостанавливает вызывающий поток на duration миллисекунд.


Note:
  • Из-за особенностей отсчёта времени приостановка может длиться дольше указанного времени.
  • Задержки, вызванные выполнением высокоприоритетного потока, также могут привести к приостановке процесса сверх ожидаемого.

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

0 в случае успеха или разница между запрашиваемым и фактическим временем приостановки в случае прерывания с помощью сигнала.

Коды ошибок:

Если произошла ошибка, errno устанавливается в следующие значения:

EAGAIN
Ресурсы таймера недоступны для удовлетворения запроса.

Примеры:

#include <unistd.h>
#include <stdlib.h>
void play_sound( void )
{
...
}
void stop_sound( void )
{
...
}
int main( void )
{
play_sound();
delay( 500 ); /* delay for 1/2 second */
stop_sound();
return (EXIT_SUCCESS);
}

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

ЗОСРВ «Нейтрино»

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

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

alarm(), errno, nanosleep(), nap(), napms(), sleep(), usleep()




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