3

我在网上找到的 C 和 POSIX 参考资料没有指定 C99 的 fesetround() 的线程安全性。甚至 GNU 文档也没有[1]。状态是每个线程还是每个进程?

[1] https://www.gnu.org/software/hello/manual/libc.html#Rounding

4

1 回答 1

8

C11 定义了线程和 fesetround(),回答它是每个线程的。(这是唯一合理的答案,但必须说明。)

草案 N1570 [1] 第 7.6.2 节:“浮点环境具有线程存储持续时间。线程的浮点环境的初始状态是当时创建它的线程的浮点环境的当前状态的创造。”

[1] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

于 2013-02-07T03:01:09.993 回答