在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
相关- 自然语言处理自然语言处理(英语:Natural Language Processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、
- 代谢网络代谢网络(英语:metabolic network)是完整的一决定细胞生理学和生物化学属性的整套代谢与物质过程。这些网络包含了代谢的化学反应以及指导这些反应的调整性相互作用。随着基因
- 枫丹白露枫丹白露(法语:Fontainebleau,法语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gen
- 2024第三十三届夏季奥林匹克运动会(英语:the Games of the XXXIII Olympiad,法语:les Jeux de la XXXIIIe Olympiade),又称2024年巴黎奥运会,将于2024年7月26日至8月11日在法国巴黎举行
- 斯洛伐克裔斯洛伐克人(斯洛伐克语: Slováci )是西斯拉夫人的一支。主要聚居于欧洲中部的斯洛伐克共和国。通用斯洛伐克语。多信奉罗马天主教。斯洛伐克人是斯洛伐克的主体民族,另外在斯
- 圣基茨和尼维斯总理圣基茨和尼维斯总理为行政首长,总理为在议会大选中获多数席位的政党领袖,任期为5年。阿根廷总统 · 安提瓜和巴布达总理 · 巴巴多斯总理 · 巴哈马总理 · 巴拉圭总统 · 巴
- Ethnologue“民族语:全世界的语言”(Ethnologue: Languages of the World),又译为“民族语言网”,是一个语言学的相关网站,是基督教以传教为目的的少数语言研究服务机构“美国国际语言暑期学
- 埃塞萨皮斯塔里尼部长国际机场埃塞萨“皮斯塔里尼部长”国际机场(西班牙语:Aeropuerto Internacional Ministro Pistarini,IATA代码:EZE;ICAO代码:SAEZ)是位于阿根廷首都布宜诺斯艾利斯的西南偏南方22公里(14英里
- 东京保护国东京保护国(法语:Protectorat français du Tonkin),是1885年法国根据《第二次顺化条约》在越南北部建立的一个保护领。越南人称之为北圻(越南语:Bắc Kỳ/.mw-parser-output .han-
- 马克·麦卡希尔马克·佩里·麦卡希尔(英语:Mark Perry McCahill,1956年2月7日-)是美国计算机科学家和互联网先驱。自1980年代后期以来,他一直参与开发和推广一些互联网技术。麦卡希尔领导了Gophe
|
---|
|