Читаем Linux программирование в примерах полностью

signal() изменяет действие для signum и возвращает предыдущее действие. (Это дает вам возможность восстановить при желании предыдущее действие.) Возвращаемое значение может равняться также SIG_ERR, что указывает на произошедшую ошибку. (Некоторые сигналы невозможно перехватить или игнорировать; предоставление для них обработчика сигнала или неверный signum создают эту ошибку.) В табл. 10.1 перечислены сигналы, доступные под GNU/Linux, их числовые значения, действия по умолчанию для каждого, формальный стандарт или современная операционная система, которые их определяют, и смысл каждого.


Таблица 10.1. Сигналы GNU/Linux

ИмяЗначениеПо умолчаниюИсточникСмысл
SIGHUP1TermPOSIXОтсоединение
SIGINT2TermISO CПрерывание
SIGQUIT3CorePOSIXВыход
SIGILL4CoreISO CНедействительная инструкция
SIGTRAP5CorePOSIXТрассировочная ловушка
SIGABRT6CoreISO CПрекращение
SIGIOT6CoreBSDЛовушка IOT
SIGBUS7CoreBSDОшибка шины
SIGFPE8CoreISO CИсключение с плавающей точкой
SIGKILL9TermPOSIXЗавершение, неблокируемый
SIGUSR110TermPOSIXСигнал 1 пользователя
SIGSEGV11CoreISO CНарушение сегмента
SIGUSR212TermPOSIXСигнал 2 пользователя
SIGPIPE13TermPOSIXНарушенный канал
SIGALRM14TermPOSIXАварийные часы
SIGTERM15TermISO CЗавершение
SIGSTKFLT16TermLinuxОшибка стека в процессоре (не используется)
SIGCHLD17IgnrPOSIXИзменение статуса порожденного процесса
SIGCLD17IgnrSystem VТо же, что и SIGCHLD (для совместимости)
SIGCONT18POSIXПродолжить при остановке
SIGSTOP19StopPOSIXСтоп, неблокируемый
SIGTSTP20StopPOSIXСтоп от клавиатуры
SIGTTIN21SlopPOSIXФоновое чтение от tty
SIGTTOU22StopPOSIXФоновая запись в tty
SIGURG23IgnrBSDСрочный сигнал сокета
SIGXCPU24CoreBSDПревышение предела процессора
SIGXFSZ25CoreBSDПревышение предела размера файла
SIGVTALRM26TermBSDВиртуальные аварийные часы
SIGPROF27TermBSDПрофилирующие аварийные часы
SIGWINCH28IgnrBSDИзменение размера окна
SIGIO29TermBSDВозможен ввод/вывод
SIGPOLL29TermSystem VОпрашиваемое событие, то же, что и SIGIO (для совместимости)
SIGPWR30TermSystem VПовторный запуск из-за сбоя питания
SIGSYS31CorePOSIXНеверный системный вызов

Обозначения: Core: Завершить процесс и создать снимок образа процесса Ignr: Игнорировать сигнал Stop: Остановить процесс. Term: Завершить процесс.

Более старые версии оболочки Борна (/bin/sh) непосредственно связывали с номерами сигналов ловушки (traps), которые являются обработчиками сигналов на уровне оболочки. Таким образом, всесторонне образованному Unix-программисту нужно было знать не только имена сигналов для использования в коде С, но также и соответствующие номера сигналов! POSIX требует, чтобы команда trap понимала символические имена сигналов (без префикса 'SIG'), поэтому этого больше не требуется. Однако (главным образом для лучшего разбирательства), мы предоставили эти номера в интересах полноты из-за того, что однажды вам может понадобиться иметь дело со сценарием оболочки, созданным до POSIX, или с древним кодом на С, которые непосредственно используют номера сигналов.

ЗАМЕЧАНИЕ. Для некоторых более новых сигналов, от 16 и выше, соответствующие номера сигнала и их имена на различных платформах не обязательно совпадают! Проверьте заголовочные файлы и справочные страницы на своей системе. Табл. 10.1 верна для GNU/Linux

Перейти на страницу:

Похожие книги

C++ Primer Plus
C++ Primer Plus

C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible and easy-to-use self-study guide, this book is appropriate for both serious students of programming as well as developers already proficient in other languages.The sixth edition of C++ Primer Plus has been updated and expanded to cover the latest developments in C++, including a detailed look at the new C++11 standard.Author and educator Stephen Prata has created an introduction to C++ that is instructive, clear, and insightful. Fundamental programming concepts are explained along with details of the C++ language. Many short, practical examples illustrate just one or two concepts at a time, encouraging readers to master new topics by immediately putting them to use.Review questions and programming exercises at the end of each chapter help readers zero in on the most critical information and digest the most difficult concepts.In C++ Primer Plus, you'll find depth, breadth, and a variety of teaching techniques and tools to enhance your learning:• A new detailed chapter on the changes and additional capabilities introduced in the C++11 standard• Complete, integrated discussion of both basic C language and additional C++ features• Clear guidance about when and why to use a feature• Hands-on learning with concise and simple examples that develop your understanding a concept or two at a time• Hundreds of practical sample programs• Review questions and programming exercises at the end of each chapter to test your understanding• Coverage of generic C++ gives you the greatest possible flexibility• Teaches the ISO standard, including discussions of templates, the Standard Template Library, the string class, exceptions, RTTI, and namespaces

Стивен Прата

Программирование, программы, базы данных