C/signal.h/SIGSYS — различия между версиями

Материал из C\C++ эксперт
Перейти к: навигация, поиск
(Новая страница: «В POSIX-системах, SIGSYS — сигнал, предназначенный для посылки программе, при попытке передать …»)
 
(нет различий)

Текущая версия на 19:10, 21 июня 2010

В POSIX-системах, SIGSYS — сигнал, предназначенный для посылки программе, при попытке передать неправильный аргумент в системный вызов.

SIGSYS — целочисленная константа, определенная в заголовочном файле signal.h. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.

SIG — общий префикс сигналов (от англ. signal), SYS — сокращенное написание англ. system call — системный вызов.

Использование

Теоретически, SIGSYS может быть послан, когда процесс передает неправильный аргумент в системный вызов. На практике же, система возвращает ENOSYS, если системного вызова с запрошенным кодом не существует или соответствующую ошибку, если аргумент системного вызова неправилен (например, EBADF, если заданного файлового дескриптора не существует). POSIX.1 говорит о SIGSYS следующим образом:

There is very little that a conforming POSIX.1 application can do by catching, ignoring or masking ... SIGSYS. ...
One portable use that does exist ... is that a command interpreter can recognize them as the cause of a process's termination.
Приложение, отвечающее POSIX.1 при перехвате SIGSYS, может сделать довольно мало.
Например, командный интерпретатор может указать его как причину завершения процесса.