Pthreads PTHREAD_MUTEX_ROBUST vs PTHREAD_MUTEX_ROBUST_NP

Pthreads PTHREAD_MUTEX_ROBUST vs PTHREAD_MUTEX_ROBUST_NP,pthreads,Pthreads,我已经编写了一些代码(在Linux下运行),这些代码使用pthread健壮的互斥锁进行死锁恢复 在Centos 5下,互斥体属性名称为PTHREAD_mutex_ROBUST_NP。然而,在Fedora 16中,_NP后缀已被删除 Posix标准不包括后缀。后缀的意思是什么,它是什么时候被删除的,使用功能命名的代码的正确编译方式是什么 编辑:所以在后面的pthread中,后缀似乎被删除了。但是,定义“GNU源”会重新定义“\u np”版本,以便源代码可以在其中任何一个版本下编译。正如cnicut

我已经编写了一些代码(在Linux下运行),这些代码使用pthread健壮的互斥锁进行死锁恢复

在Centos 5下,互斥体属性名称为PTHREAD_mutex_ROBUST_NP。然而,在Fedora 16中,_NP后缀已被删除

Posix标准不包括后缀。后缀的意思是什么,它是什么时候被删除的,使用功能命名的代码的正确编译方式是什么


编辑:所以在后面的pthread中,后缀似乎被删除了。但是,定义“GNU源”会重新定义“\u np”版本,以便源代码可以在其中任何一个版本下编译。

正如cnicutar已经建议的那样,\u np代表不可移植,并且附加了希望添加标准中未包含(或尚未包含)的功能的实现。该标准只考虑在至少一个主要实现中实现的功能,并证明它是有用的,而不是使用现有标准函数来实现的。 Fedora通常使用比RHEL(或CentOS)更新版本的库,并且可能在标准中接受了健壮的互斥体和相关的API之后删除了_np。

也许它的意思是“不可移植”。