Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
К.Р. Вариант 2.docx
Скачиваний:
2
Добавлен:
24.09.2019
Размер:
32.12 Кб
Скачать

Системные вызовы sleep, pause, nanosleep.

НАЗВАНИЕ

pause - ожидает сигнал

#include <unistd.h>

int pause(void);

После вызова функции pause вызывающий процесс (или подзадача) приостанавливается до тех пор, пока не получит сигнал. Данный сигнал либо остановит процесс, либо заставит его вызвать функцию обработки этого сигнала. Функция pause возвращается только тогда, когда сигнал был перехвачен и произошел возврат из функции обработки сигнала. В этом случае она возвращает -1, а значение переменной errno становится равным EINTR.

НАЗВАНИЕ

Sleep – переводит процесс в пассивное состояние на заданное количество секунд.

int sleep (int);

НАЗВАНИЕ

nanosleep - останавливает работу процесса на заданное время

#include <time.h>

int nanosleep(struct time *rem, struct time val*req);

nanosleep приостанавливает работу процесса как минимум на время, заданное параметром *req. Функция может вернуть управление процессу ранее, если процесс получил определенный сигнал. В этом случае функция возвращает значение -1 (при этом значение errno становится равным EINTR) и записывает оставшееся время в структуру, заданную rem, если rem не равен NULL. Значение структуры *rem можно использовать для того, чтобы завершить заданную паузу путем повторного вызова nanosleep. В функции используется структура timespec, позволяющая задавать интервалы времени с точностью до наносекунды. Эта структура описана в <time.h> и имеет следующую форму:

struct timespec

{

time_t tv_sec; /* секунды */

long tv_nsec; /* наносекунды */

};

Значение поля наносекунд должно находиться в диапазоне от 0 до 999 999 999. По сравнению с sleep(3) и usleep(3) nanosleep не влияет на сигналы, стандартизирована в POSIX, позволяет задавать более точные интервалы времени и позволяет более легким способом возобновить паузу после прерывания ее сигналом. При удачном завершении вызова возвращаемое значение равно нулю. При ошибке оно равно -1, а переменной errno присваивается номер ошибки.

Список используемой литературы

  1. Робачевский А.М. Операционная система UNIX. – СПб.: ВХВ-Петербург, 2002.- 528 с.: ил.

  2. Internet – ресурсы

http://www.intuit.ru/

www.openspin.org

http://www.osp.ru/

http://citforum.univ.kiev.ua/programming/unix

http://blog.not-a-kernel-guy.com