C pthread错误号:否?

C pthread错误号:否?,c,pthreads,errno,error-code,C,Pthreads,Errno,Error Code,查看pthread.*函数(如和许多其他函数)的文档,文档的措辞如下: 返回值 如果成功,pthread_rwlock_destroy()和pthread_rwlock_init()函数应返回零;否则,应返回错误号以指示错误 [EBUSY]和[EINVAL]错误检查(如果实施)的作用就像是在函数处理开始时立即执行,并在修改rwlock指定的读写锁状态之前导致错误返回 这表示如果出现错误,应返回错误号。然后,解释错误代码: 错误 如果出现以下情况,pthread_rwlock_destroy()函

查看
pthread.*
函数(如和许多其他函数)的文档,文档的措辞如下:

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

[EBUSY]和[EINVAL]错误检查(如果实施)的作用就像是在函数处理开始时立即执行,并在修改rwlock指定的读写锁状态之前导致错误返回

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

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

[EBUSY]
实现检测到有人试图在rwlock引用的对象被锁定时销毁该对象。

它没有提到是返回
EBUSY
本身还是返回
-EBUSY
。当函数返回错误代码时,几乎在我看到的所有地方,它们都返回
-E****

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


在同一主题上,他们是否将
EBUSY
存储在
errno
-EBUSY
中?

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

它们返回的错误代码为正数。应用程序看不见的内容将返回否定的错误代码。这是内核的实现细节。

EBUSY!=-EBUSY
。。我不明白负数是从哪里来的。与内核实现细节混淆。@pst,
EBUSY!=-EBUSY
,因此您需要知道是返回了
EBUSY
,还是返回了
-EBUSY
。通常错误代码被定义为正数,然后返回,后面有负号。所以负数出现在它们放置的位置
-
?还是我完全误解了你的评论?你不应该检查
>0
@alk,叹气。。。对然后,您需要检查失败的原因,即您应该对照
EBUSY
-EBUSY
检查返回值。我在问哪个是正确的。
EBUSY!=-EBUSY
。。我不明白负数是从哪里来的。与内核实现细节混淆。@pst,
EBUSY!=-EBUSY
,因此您需要知道是返回了
EBUSY
,还是返回了
-EBUSY
。通常错误代码被定义为正数,然后返回,后面有负号。所以负数出现在它们放置的位置
-
?还是我完全误解了你的评论?你不应该检查
>0
@alk,叹气。。。对然后,您需要检查失败的原因,即您应该对照
EBUSY
-EBUSY
检查返回值。我在问哪个是正确的。Were“They”是指
pthread.*
family函数的详细含义。大多数系统调用在成功时只返回
0
,在错误时返回
-1
,而将
errno
设置为
E*
错误代码集中的正值。有趣的是,我在github(代码中)中搜索了“return EBUSY”和“return EINVAL”我确实看到
pthread.*
函数本身返回
E*
值。然而,其他一切似乎都返回了
-E*
。同时,所有这些东西似乎都与内核有关!Were“They”是指
pthread.*
family函数的详细含义。大多数系统调用在成功时只返回
0
,在错误时返回
-1
,而将
errno
设置为
E*
错误代码集中的正值。有趣的是,我在github(代码中)中搜索了“return EBUSY”和“return EINVAL”我确实看到
pthread.*
函数本身返回
E*
值。然而,其他一切似乎都返回了
-E*
。同时,所有这些东西似乎都与内核有关!