- SIGFPE
-
SIGFPE Описание: Ошибочная арифметическая операция По умолчанию: завершение с дампом памяти коды SA_SIGINFO FPE_INTDIV
Целочисленное деление на нуль FPE_INTOVF
Целочисленное переполнение FPE_FLTDIV
Деление на нуль с плавающей запятой FPE_FLTOVF
Переполнение с плавающей запятой FPE_FLTUND
Антипереполнение с плавающей запятой FPE_FLTRES
Ошибка точности операции с плавающей запятой FPE_FLTINV
Неправильная операция с плавающей запятой FPE_FLTSUB
Запредельный индекс В POSIX-системах, SIGFPE — сигнал, посылаемый процессу, при попытке выполнения ошибочной арифметической операции.
SIGFPE — целочисленная константа, определённая в заголовочном файле
signal.h
. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.Этимология
SIG — общий префикс, сигналов, FPE — аббревиатура англ. floating-point exception — исключение в операции с плавающей запятой. На самом деле, SIGFPE используется и для целочисленной арифметики, название же сохраняется для обеспечения обратной совместимости кода.
Использование
SIGFPE может быть послан процессу по ряду причин. Самая распространенная из них — переполнение типа данных в результате неожиданно больших (или малых) значений входных данных и/или ошибки дизайна программы.
SIGFPE может быть перехвачен или проигнорирован. Игнорирование SIGFPE в некоторых случаях может привести к непредсказуемым результатам — программа может зациклиться в попытке выполнить ошибочную операцию. Если SIGFPE не является результатом арифметической операции (а, например, послан с помощью системного вызова
kill()
), то такое игнорирование вполне безопасно.При делении SIGFPE вызывает не только равный нулю делитель — на некоторых платформах (включая x86), целое деление INT_MIN, самого малого (отрицательного) целого числа, на (−1) не может быть выполнено, поскольку положительное число с этим модулем непредставимо (при INT_MIN = (−2147483648), INT_MAX = 2147483647).
См. также
- Деление на нуль
- Плавающая запятая
Сигналы POSIX SIGABRT | SIGALRM | SIGFPE | SIGHUP | SIGILL | SIGINT | SIGKILL | SIGPIPE | SIGQUIT | SIGSEGV | SIGTERM | SIGUSR1 | SIGUSR2 | SIGCHLD | SIGCONT | SIGSTOP | SIGTSTP | SIGTTIN | SIGTTOU | SIGBUS | SIGPOLL | SIGPROF | SIGSYS | SIGTRAP | SIGURG | SIGVTALRM | SIGXCPU | SIGXFSZ | Сигналы реального времени (определяемые пользователем) — SIGRTMIN — SIGRTMAX.
Некоторые сигналы не включенные в POSIX и синонимы SIGIOT | SIGEMT | SIGSTKFLT | SIGIO | SIGCLD | SIGPWR (SIGINFO) | SIGLOST | SIGWINCH | SIGUNUSED Категория:- Сигналы POSIX
Wikimedia Foundation. 2010.