Описание функций Си



         

Signal



     signal

Функция Определяет действия по обработке сигналов.

Синтаксис #include

void (*signal(int sig, void (*func) (int sig [, int subcode])))(int);

Файл, содержащий signal.h прототип

Описание signal определяет как реагировать на сигнал, с но- мером sig. Вы можете загрузить свою программу об- работки сигнала или использовать две предопреде- ленные подпрограммы, описанные в signal.h. Это следующие: -------------------------------------------------- Номер ф-ции Значение -------------------------------------------------- SIG_DFG Завершить выполнение программы SIG_IGN Игнорировать сигнал этого типа SIG_ERR Определяет ошибку, возвращае- мую signal -------------------------------------------------- Имеются предопределенные типы сигналов: -------------------------------------------------- Тип сигнала Значение -------------------------------------------------- SIGABRT Ненормальное завершение. Действие по умолчанию эквивалентно _exit(3). SIGFPE Арифметическая ошибка, возникаю- щая при делении на 0, неверной операции и т.п. Действие по умолчанию эквивалентно _exit(1). SIGILL Неверная операция. Действие по умолчанию эквивалентно _exit(1). SIGINT Прерывание по Ctrl-C. Действие по умолчанию INT 23H. SIGSEGV Неверное обращение к памяти. Действие по умолчанию экви- валентно _exit(1). SIGTERM Требование завершения программы. Действие по умолчанию экви- валентно _exit(1). --------------------------------------------------

В signal.h определен тип, названный sig_atomic_t, максимальный целый тип, который процессор может автоматически запоминать при асинхронном прерыва- нии (для семейства 8086 это 16-ти битовое слово, целое значение для Turbo C++).

Когда функцией raise генерируется сигнал и в слу- чае внешнего события, то присходит следующее:

1. Если загружена программа пользователя для об- работки этого сигнала, то действие для сигнала устанавливается в SIG_DFL. 2. Вызывается подпрограмма пользователя для обра- ботки этого сигнала.

Подпрограмма пользователя может завершаться прос- тым return или abort, _exit, exit или longjmp.




Содержание  Назад  Вперед