gpt4 book ai didi

c - 我怎样才能知道类 unix 操作系统是否实现了 POSIX 信号量?

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:43 25 4
gpt4 key购买 nike

如何确定类 unix 操作系统(例如 Mac OS X/Linux 2.6)是否实现了 POSIX 信号量?我可以使用 sysconf 获取它吗?

#include <unistd.h>
long sysconf(int name);

我只想在 Linux/Mac OS X 中使用 POSIX 信号量 api(sem_init/sem_wait/sem_post)。我看到 Linux 2.6 和 MAC OS X 10.6.6 都实现了 POSIX 信号量。但是,在编写跨平台应用程序时,如何确定类 unix 操作系统是否实现了 POSIX 信号量。

最佳答案

是的,sysconf 应该用标签回答查询

 _POSIX_SEMAPHORES

支持的版本号。在 POSIX 系统上,您还有 getconf。例如,在我的 linux 机器上,我得到了

>% getconf  _POSIX_SEMAPHORES
200809

因此您可以将它集成到构建脚本或类似的东西中。在 Linux 上,您还应该有一个手册页 posixoptions

但要注意始终检查sem_init 的返回。 AFAIR,OS X 总是返回 -1 来简单地实现这一点。

关于c - 我怎样才能知道类 unix 操作系统是否实现了 POSIX 信号量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8464168/

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