在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
相关- 牛骂头文化牛骂头遗址是位于台湾台中市清水区鳌峰山的一个考古遗址,也是台湾中部新石器时代文化牛骂头文化的命名遗址。台中市政府文化局已将原址规划为“牛骂头遗址文化园区”并对外开
- 诺盖尔鸟诺盖尔鸟(学名Noguerornis)是一类反鸟亚纲鸟类。它们生存于约1亿3000万年前的白垩纪早期,其化石是在西班牙发现。
- 血细胞压积血细胞比容(德语:Hämatokrit,英语:hematocrit 源于希腊语:αιματοκρίτης,简写 HCT / Ht)又称血比容、红血球容积比、血容比,旧名红细胞压积(packed cell volume,简写PCV)指
- 爱德华·劳里·塔特姆爱德华·劳里·塔特姆(Edward Lawrie Tatum,1909年12月14日-1975年11月5日),美国遗传学家。他与乔治·韦尔斯·比德尔发现基因受到特定化学过程的调控而获得1958年诺贝尔生理学或
- 硝酸亚汞硝酸亚汞化学式为Hg2(NO3)2,英文名为mercury(I) nitrate。为白色斜晶体,水解后变成无色,可溶性金属盐类,为氧化剂。如同所有汞化合物,有一定毒性。硝酸亚汞是经由稀硝酸和汞的化
- 紫蓝金刚鹦鹉紫蓝金刚鹦鹉(学名:)是金刚鹦鹉属中,以至到鹦形目中体型最大的种,但它们的体重不及新西兰的鸮鹦鹉。它们独特的体型、颜色和行为,使其成为金刚鹦鹉属中最受自然学家注目的品种,不幸
- 大蒜素大蒜素(Allicin)是从石蒜科葱亚科葱属植物大蒜()的鳞茎(大蒜头)中提取的一种有机硫化合物,也存在于洋葱和其他葱科植物中。 学名“二烯丙基硫代亚磺酸酯”(CH2=CH-CH2-S(=O)-S-CH2-C
- 阴标阴标(?-?),字时准,直隶保定府容城县人,民籍,明朝政治人物。顺天府乡试第一百十三名举人。嘉靖二十年(1541年)中式辛丑科会试第六十五名,登第二甲第三十八名。曾祖阴祜,巡检;祖父阴廷玺,寿官
- 曾如海曾如海(1559年-1595年),字粤祥,一字敬元,江西临川县人,明朝政治人物。万历十六年(1588年)戊子科江西乡试举人。万历二十年(1592年)壬辰科第三甲进士,授福建同安县知县,卒于任。曾如海与同
- 重阳糕重阳糕又称作花糕、菊糕和五色糕,是中国传统节日重阳节时所食用的一种点心,一般用糯米做成,上面佐以红绿丝、枣等辅料,味道清甜。重阳糕的形状不定,有种讲究的制造九层,如宝塔状,亦
|
---|
|