Return 个 POSIX 个函数的值

Return values of POSIX functions

我尝试编写在两个 POSIX 兼容操作系统(即 QNX 和 Linux 变体)之间共享的 POSIX 兼容代码。

我刚刚发现函数 return 值的规范存在细微差异,例如pthread_mutex_trylock() 个。一份文件说它 returns EOK(计算结果为 0),另一份文件说它 returns plain 0 如果成功。

我假设我可以安全地检查 return 值 == 0!= 0 并避免 QNX EOK 宏。

我的问题:

  1. POSIX 是否明确定义了在成功 and/or 错误的情况下哪些值必须由函数 return 编辑?
  2. 严格来说,是指定给returnEOK(不是0)POSIX的函数吗?
  3. EOK 是某些标准的一部分吗?
  1. 有 POSIX 手册页,查阅它们以找出函数的 POSIX 定义是什么。例如:http://www.unix.com/man-page/all/3posix/pthread_mutex_trylock/。总的来说,POSIX是非常一致的,在所有情况下,return值只是用来表示成功或失败的,0表示成功。
  2. 如果 EOK 等于 0,则 QNX 实现是 POSIX 兼容的。但是,正如您已经说过的,在您自己的代码中使用 0 以确保它可以在所有平台上编译。
  3. 据我所知,它不是独立于平台的标准的一部分。要么你避免使用它,要么你认为 EOK 更清楚,那么你可以在你的程序中这样写:

.

#ifndef EOK
#define EOK 0
#endif