sleep – приостановка работы потока
Синтаксис:
#include < unistd.h >
unsigned int sleep (unsigned int sec);
Аргументы:
unsigned int sec – время задержки в секундах
Возвращаемое значение:
Если истекло время задержки, указанное в аргументе функции, то возвращается 0.
Если задержка была по каким либо причинам прервана (например, поступил сигнал и была вызвана функция обработки сигналов) то возвращается время в секундах оставшееся до окончания задержки.
Описание:
Функция sleep приостанавливает работу потока, в котором она была вызвана, на указанное в аргументе время или до поступления сигнала по которому вызывается функция обработки сигналов или программа завершает свою работу.
Продолжительность остановки потока управления указывается в секунду и не может быть меньше указанного времени, если остановка не была прервана сигналом. Однако время приостановки может быть больше, указанного времени из-за накладных расходов или если в момент окончания приостановки работал более приоритетный поток.
Приостановка потока с помощью функции sleep () не оказывает влияния на обработку сигналов
Пример:
В примере с помощью функции sleep () приостанавливается работа программы на одну секунду пять раз.
#include < stdio.h > //Для printf и puts
#include < unistd.h > //Для sleep
int main (void)
{
int MyTik=0; //Счетчик приостановок работы
//Вывод сообщения о приостановке работы
puts (“Остановка работы на 5 секунд”);
//Цикл на пять тактов
while (MyTik<5)
{
//Вывод оставшегося времени до возобновления работы
printf (“ Осталось %d сек.\n”,5-MyTik);
//Приостановка работы на 1 секунду
sleep (1);
//Увеличение на 1 счетчика приостановок
MyTik++;
}
//Вывод сообщения о возобновлении работы
puts (“Работа возобновлена”);
return 0;
}
| |
Результат:
Остановка работы на 5 секунд:
Осталось 5 сек.
Осталось 4 сек.
Осталось 3 сек.
Осталось 2 сек.
Осталось 1 сек.
Работа возобновлена
|
Смотри так же:
sleep,
nanosleep,
usleep.
|