gpt4 book ai didi

c - POSIX 函数的返回值

转载 作者:行者123 更新时间:2023-12-03 17:44:01 24 4
gpt4 key购买 nike

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

我刚刚发现函数返回值的规范存在细微差异,例如pthread_mutex_trylock()。一个文档说它返回 EOK(计算结果为 0),另一个说它在成功的情况下返回普通的 0

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

我的问题:

  1. POSIX 是否明确定义函数在成功和/或错误时必须返回哪些值?
  2. 严格来说,指定返回 EOK(而非 0)的函数是否符合 POSIX 标准?
  3. EOK 是某个标准的一部分吗?

最佳答案

  1. 有 POSIX 手册页,查阅它们以了解函数的 POSIX 定义是什么。例如:http://www.unix.com/man-page/all/3posix/pthread_mutex_trylock/ .一般来说,POSIX 是非常一致的,在所有返回值仅用于表示成功或失败的情况下,0 表示成功。
  2. 如果EOK 等于0,那么QNX 实现是POSIX 兼容的。但是,正如您已经说过的,在您自己的代码中使用 0 以确保它可以在所有平台上编译。
  3. 据我所知,它不是独立于平台的标准的一部分。要么你避免使用它,要么你认为 EOK 更清楚,那么你可以在你的程序中这样写:

.

#ifndef EOK
#define EOK 0
#endif

关于c - POSIX 函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41239309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com