pthread错误号:是否否定?

时间:2013-03-19 18:03:57

标签: c pthreads errno error-code

查看pthread_*EBUSY函数的文档,以及文档的措辞:

  

返回值

     

如果成功,pthread_rwlock_destroy()和pthread_rwlock_init()函数将返回零;否则,应返回错误编号以指示错误。

     

如果实现了[EBUSY]和[EINVAL]错误检查,就好像它们是在函数处理开始时立即执行的,并且在修改由指定的读写锁定状态之前导致错误返回。 rwlock中。

这表示如果出现错误,则应返回错误号。然后,它解释了错误代码:

  

错误

     

如果出现以下情况,pthread_rwlock_destroy()函数可能会失败:

     

[EBUSY]
          该实现已检测到在锁定时破坏rwlock引用的对象的尝试      ...

没有提及是否返回-EBUSY本身或-E*****。几乎在我看到函数返回错误代码的任何地方,它们都会返回pthread_*

这是否意味着-EBUSY函数也遵循此约定?我应该检查EBUSYEBUSY本身的返回值吗?

在同一主题上,他们会将errno存储在-EBUSY或{{1}}吗?

1 个答案:

答案 0 :(得分:4)

他们返回正数的错误代码。应用程序看不到任何内容返回否定的错误代码。这是内核的实现细节。