在POSIX兼容的平台上,SIGFPE是当一个进程执行了一个错误的算术操作时发送给它的信号。SIGFPE的符号常量在头文件signal.h
中定义。因为在不同平台上,信号数字可能变化,因此常使用信号名称。
是信号名的通用前缀。是(浮点异常)的首字母缩略字。产生SIGFPE信号时并非一定要涉及浮点算术,之所以不修改名字是因为这么做会破坏向下兼容性。
导致SIGFPE被发送给进程的原因有很多。一个常见的例子是由于一个意外输入导致的溢出,或者在程序构造中的错误。
SIGFPE可以被处理。也就是说,程序员可以指定他们在接收到信号时想要的动作,例如调用一个子程序,忽略事件等。
在特定情形下,忽略SIGFPE可能导致程序出现意料之外的行为,包括但不限于由于不断重试违规操作而导致程序挂起。但是,忽略并非由计算造成的SIGFPE信号是安全的,例如通过kill
系统调用发送的那些。
一个通常的疏忽是认为除以零是SIGFPE的唯一来源。在一些架构上(包括IA-32),使用INT_MIN(最小的可以被表示的负整数值)除以-1的整数除法也会触发这个信号,因为商是一个无法被表示的正数。(比如8位有符号整数可以表示-128、+127和它们之间的整数。-128÷-1=+128 > +127,因此无法被表示而产生溢出并触发此信号)
这是一个尝试执行一个称为整数除以零,或的错误算术运算的ANSI C程序的例子。
int main(){ int x = 42/0; return 0; /* Never reached */}
在一个运行Linux的IA-32上编译运行,产生下列内容:
$ gcc -o sigfpe sigfpe.csigfpe.c: In function ‘main’:sigfpe.c:3: warning: division by zero$ ./sigfpeFloating point exception (core dumped)
一个来自gdb的栈跟踪显示在main
函数中发生了SIGFPE信号:
Program received signal SIGFPE, Arithmetic exception.0x08048373 in main ()
参考
- ^ sourceware.org Git - glibc.git/blob - bits/signum.h. 2001-07-06 .
参阅
计算机信号 |
---|
| POSIX | SIGABRT · SIGALRM · SIGFPE · SIGHUP · SIGILL · SIGINT · SIGKILL · SIGPIPE · SIGQUIT · SIGSEGV · SIGTERM · SIGUSR1 · SIGUSR2 · SIGCHLD · SIGCONT · SIGSTOP · SIGTSTP · SIGTTIN(英语:SIGTTIN) · SIGTTOU · SIGBUS · SIGPOLL · SIGPROF · SIGSYS · SIGTRAP · SIGURG(英语:SIGURG) · SIGVTALRM · SIGXCPU · SIGXFSZ · SIGIOT · SIGEMT · SIGSTKFLT · SIGIO · SIGCLD · SIGINFO · SIGPWR · SIGLOST · SIGWINCH · SIGUNUSED
相关- 噬病毒体噬病毒体(Virophages)类似卫星病毒,但他抑制或损害辅助病毒。与其他卫星病毒类似,噬病毒体依赖于另一种病毒混合感染宿主。噬病毒体危害其辅助病毒的繁殖。尽管越来越多的科学文
- Desiderius Erasmus德西德里乌斯·伊拉斯谟·鹿特丹姆斯(德语:Desiderius Erasmus Roterodamus;1466年10月27日-1536年7月12日),也译作伊拉斯姆斯、埃拉斯默斯、艾拉思姆斯、伊拉斯默斯,史学界通称鹿
- bHLH结构 / ECOD碱性螺旋-环-螺旋(英语:basic Helix-Loop-Helix,简称为bHLH)是表征一种转录因子家族的蛋白质结构模体。拥有此蛋白质结构域的蛋白质成为一个蛋白质家族,这些蛋白质大
- 脊椎关节炎脊椎关节病变(英语:spondyloarthropathy,缩写为 SpA)泛指任何影响脊椎关节的关节病变,它是一大类疾病的集合总称,而非单一个特定疾病。脊椎病变则是脊椎骨本身的问题,两者并不相同
- 光天化日光天化日是一句成语,也可以指:
- 包拉克镇包拉克镇(缅甸语:ဘော်လခဲမြို့နယ်;英语:Bawlakhe Township)为缅甸克耶邦包拉克县的镇区。2014年人口10,996人,区域面积1,948.7平方公里。该镇辖下104个村庄。包拉
- 安东尼·拉帕里亚Cherie Michan (离婚)
Gia Carides (1998-2015)
安东尼·拉帕里亚(Anthony M. LaPaglia,1959年1月31日-)是澳大利亚的一位演员。他出演过的主要电影有终极证人。
- 观绿路坐标:23°07′07″N 113°15′16″E / 23.11861°N 113.25444°E / 23.11861; 113.25444观绿路是广东省广州市越秀区的一条东西走向的道路,原名官禄路,位于人民中路以东,海珠中
- 辐射巡测仪 辐射巡测仪,全称电离辐射巡测仪,一般采用NaI(Tl)晶体或者GM管作为探测器,再配上电子放大线路和报警指示装置,就算作一台电离辐射巡测仪。可以探测一般水平的伽马(γ)辐射。一般在
- 反NP在计算复杂度理论上,反NP类是复杂度类的其中一类。一个问题 X {\displaystyle {\mathcal {X}}}
|
---|
|