我已经编写了一些代码(在Linux下运行),这些代码使用pthread健壮的互斥锁进行死锁恢复。
在CentOS5下,互斥属性名为PTHREAD_MUTEX_ROBUST_NP。但是,在Fedora16下,_NP后缀已被删除。
Posix标准不包括后缀。后缀是什么意思,它是什么时候被删除的,以及什么是正确的方式来编译使用功能命名的代码。
EDIT:因此,在后面的pthread中,后缀似乎被删除了。但是,定义_GNU_SOURCE会重新定义'_np‘版本,因此源代码可以在这两个版本中的任何一个下编译。
发布于 2012-08-29 09:57:13
正如cnicutar已经建议的那样,_NP代表不可移植,并且附加了想要添加标准中没有(或还没有)的功能的实现。该标准将只考虑包括至少在一个主要实现中实现的功能,并且证明这些功能是有用的,并且使用现有的标准功能不是微不足道的。
Fedora通常使用比RHEL (或CentOS)更新的库版本,并且可能删除了_np,因为健壮的互斥和相关的API已经被接受为标准。
https://stackoverflow.com/questions/12080640
复制相似问题