查看pthread_*
诸如pthread_rwlock_destroy
和许多其他功能的文档,这就是文档的措辞:
返回值
如果成功,pthread_rwlock_destroy() 和 pthread_rwlock_init() 函数将返回零;否则,应返回错误号以指示错误。
[EBUSY] 和 [EINVAL] 错误检查(如果实施)就像在函数处理开始时立即执行一样,并在修改 rwlock 指定的读写锁的状态之前导致错误返回。
这表示如果发生错误,应返回错误号。然后,它解释了错误代码:
错误
如果出现以下情况,pthread_rwlock_destroy() 函数可能会失败:
[EBUSY]
实现检测到尝试在锁定时销毁 rwlock 引用的对象。
...
其中没有提到EBUSY
本身是返回还是-EBUSY
. 当函数返回错误代码时,几乎在我看到的所有地方,它们都会返回-E*****
.
这是否意味着pthread_*
函数也遵循这个约定?我应该检查返回值-EBUSY
还是EBUSY
本身?
在同一主题上,他们会存储EBUSY
在errno
or中-EBUSY
吗?