0

我正在将一些 BSD 代码移植到 CentOS,我发现在 ieeefp.h 中找到的标准函数 fpsetmask() 已在代码中使用。

我还不知道这个函数的行为,但是有一个 linux 等效的吗?或者我应该在linux上创建一些模拟这个的东西?

4

1 回答 1

1

我认为 feraiseexcept() 函数是等效的——有关详细信息,请查看其手册页的“异常处理”小节。

根据fpsetmask() 手册页,各个标志的映射如下:

  • FP_X_INV → FE_INVALID
  • FP_X_DZ → FE_DIVBYZERO
  • FP_X_OFL → FE_OVERFLOW
  • FP_X_UFL → FE_UNDERFLOW
  • FP_X_IMP → FE_INEXACT
  • FP_X_IOV →无,也可能是 FE_OVERFLOW

请记住,这可能仅限于 x87。

于 2013-12-21T18:06:30.433 回答