如何解释Open Group Base Spec 6中_POSIX_THREADS的允许值?

时间:2013-10-23 17:10:18

标签: boost pthreads posix standards

version of the POSIX spec表示allowed values for the symbol _POSIX_THREADS为-1,0或200112L,但未说明每个值的含义。

评论in boost表明大于零的值表示posix线程支持,但附近的预处理器检查似乎将零解释为“启用线程”的含义。

如何解释三个允许值?特别是-1是否意味着“没有线程”?零均值线程或无线程?我猜测200112L意味着线程,但我也对这方面的更多信息感兴趣。

基本上我只想验证boost预处理程序检查是否是测试posix线程存在的正确方法,尽管看起来有点误导性的评论。

1 个答案:

答案 0 :(得分:2)

引用您引用的POSIX规范页面:

如果使用值-1定义符号常量,则不支持该选项。不需要提供仅为选项所需的标头,数据类型和功能接口。尝试使用仅与该选项关联的任何内容的应用程序被视为需要扩展。

如果使用大于零的值定义符号常量,则在执行应用程序时应始终支持该选项。所有标题,数据类型和功能都应存在,并应按规定运行。

如果使用零值定义符号常量,则应存在所有标题,数据类型和函数。应用程序可以在运行时检查是否通过使用指定的name参数调用fpathconf(),pathconf()或sysconf()来支持该选项。