Теория вычислительных процессов и структур
| Категория реферата: Рефераты по математике
| Теги реферата: реферат по географии, изложение по русскому 6 класс
| Добавил(а) на сайт: Набережнев.
Предыдущая страница реферата | 19 20 21 22 23 24 25 26 27 28 29 | Следующая страница реферата
/*До вызова процедуры sigaction сигнал SIGINT*/
/*приводил к завершению процесса (действие по умолчанию).*/
sigaction (SIGINT, &act, NULL);
/*При получении сигнала SIGINT управление*/
/*будет передаваться процедуре catchint*/
printf (“Вызов sleep номер 1n”);
sleep (1);
printf (“Вызов sleep номер 2n”);
sleep (1);
printf (“Вызов sleep номер 3n”);
sleep (1);
printf (“Вызов sleep номер 4n”);
sleep (1);
printf (“Выходn”);
exit (0);
}
/*Простая функция для обработки сигнала SIGINT*/
void catchint (int signal)
{
printf (“nСигнал CATCHINT: signo = %dn”, signo);
printf (“Сигнал CATCHINT: возвратnn”);
}
Сеанс обычного запуска sigex будет выглядеть так:
$ sigex
Вызов sleep номер 1
Вызов sleep номер 2
Вызов sleep номер 3
Вызов sleep номер 4
Выход
Пользователь может прервать выполнение данной программы, нажав клавишу прерывания задания. Если она была нажата до того, как в программе была выполнена процедура sigaction, то процесс просто завершит работу. Если же нажать на клавишу прерывания после вызова, то управление будет передано функции catchint:
$ sigex
Вызов sleep номер 1
<прерывание> (пользователь нажимает на клавишу прерывания)
Сигнал CATCHINT : signo =2
Сигнал CATCHINT : возврат
Вызов sleep номер 2
Вызов sleep номер 3
Вызов sleep номер 4
Выход
Обратите внимание на то, как передается управление из тела программы в процедуру catchint. После завершения этой процедуры, управление продолжится с точки, в которой программа была прервана. Можно попробовать прервать программу и в другом месте:
$ sigex
Вызов sleep номер 1
Вызов sleep номер 2
<прерывание> (пользователь нажимает на клавишу прерывания)
Сигнал CATCHINT : signo =2
Сигнал CATCHINT : возврат
Вызов sleep номер 3
Вызов sleep номер 4
Выход
Для того чтобы процесс игнорировал сигнал прерывания SIGINT, нужно заменить строку в программе:
Рекомендуем скачать другие рефераты по теме: правила реферата, bestreferat.
Категории:
Предыдущая страница реферата | 19 20 21 22 23 24 25 26 27 28 29 | Следующая страница реферата