【问题标题】:Is C99 fesetround()/fegetround() state per-thread or per-process?C99 fesetround()/fegetround() 状态是每个线程还是每个进程?
【发布时间】:2013-01-22 11:03:26
【问题描述】:

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

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

【问题讨论】:

    标签: c floating-point thread-safety c99 c11


    【解决方案1】:

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

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

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

    【讨论】:

    • 对; C99 没有“线程”或“线程存储持续时间”的概念,因此无法表达这一点,但它的意图始终是每个线程的状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2021-11-19
    • 2014-08-18
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多