在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
相关- 舌咽神经舌咽神经(Glossopharyngeal nerve)为大脑第9对神经,属于混合神经。编号IX。主要控制茎突咽肌,腮腺体,部分味蕾和收集来自耳部后部的感觉等。解剖学(Anatomy)-脑神经(cranial nerv
- 语义角色语义角色(英语:Semantic roles),又称语义关系、主题关系(thematic relations),生成语法中称为题元或题元角色(θ-roles),在格语法中也称为语义格或深层格,是语义学上的一个概念,指短语或
- 连加网络商业股份有限公司LINE Corporation是Naver集团设立于日本东京的资讯服务公司,主要业务为开发LINE即时通讯软件平台,并围绕LINE平台开发众多服务,旗下拥有 LINE FRIENDS 商店贩售周边商品。在台
- 球窝关节杵臼关节也称为球窝关节,是一种滑液关节,是最灵活的关节,可移动骨头的末端成圆球状,刚好可以塞入固定骨头的臼窝中,骨头可以旋转及朝各个方向自由转动。用髋关节为例,其中圆形的股
- 卡迪卡迪可以指:
- 中古世纪中世纪(公元5世纪-公元15世纪)是欧洲历史三大传统划分(“古典时代”、“中世纪”和“近现代”)的一个中间时期,始于西罗马帝国(公元476年)的灭亡,终于东罗马帝国(公元1453年)的灭亡,最
- 15-冠-515-冠-5是一种冠醚,化学式为C10H20O5。它是环氧乙烷的环状五聚体,可以与多种离子形成配合物,包括钠离子和钾离子,但与铅离子选择性结合。作为含特殊官能团的化合物,人们正在研究
- 布鲁斯·威利斯沃尔特·布鲁斯·威利斯(英语:Walter Bruce Willis,1955年3月19日-)或简称布鲁斯·威利斯(Bruce Willis),是一位美国男演员、制片人、编剧和歌手。最初因于电视连续剧《双面娇娃》(19
- 谷崎泰明谷崎泰明(1952年10月20日-)是一名日本外交官,出身于东京都。2017年6月19日起担任日本台湾交流协会理事长。
- 曾我萧白曾我萧白(日语:曾我蕭白/そが しょうはく ,1730年-1781年),日本江户时代的画家。他学习狩野派绘画,而后却形成自己怀旧的室町水墨画风格。他的很多作品都用单色水墨,笔法雄浑有力。
|
|---|
|