在C程序中除以零会导致错误消息的异常终止Floating point exception (core dumped).这对于浮点除法并不足为奇,但为什么在整数除以零时会这样说呢?整数除法实际上是否使用引擎盖下的FPU?
(顺便说一下,这都是在x86下的Linux上.)
小智 5
我对此的历史解释的猜测是,原始的 unix 硬件不会在整数除以零时生成陷阱,所以这个名字SIGFPE是有道理的。(PDP 汇编程序员,确认?)然后当系统被移植(或者在 Linux 的情况下,重新实现)到带有整数除以零陷阱的硬件时,添加一个新的信号号被认为是不值得的,所以旧的获得了新的含义,现在有一个有点令人困惑的名字。