【问题标题】:What does #define _POSIX_SOURCE mean?#define _POSIX_SOURCE 是什么意思?
【发布时间】:2018-01-19 00:13:01
【问题描述】:

在 C 语言中使用#define _POSIX_SOURCE 对我的程序有什么好处?我可以在我的程序中访问更多的库,或者我可以调用一些直接存在于 C 中的函数。这个宏是做什么用的?

【问题讨论】:

标签: c macros posix


【解决方案1】:

它允许您使用不属于标准 C 库但属于 POSIX.1(IEEE 标准 1003.1)标准的函数。使用中描述的宏 feature_test_macros 允许您控制公开的定义 通过系统头文件。

据我所知_POSIX_SOURCE 已过时,您应该改用_POSIX_C_SOURCE

例如,如果要使用strndup,则必须使用

#define _POSIX_C_SOURCE 200809L

另见

【讨论】:

  • 如果您使用 GCC 在 Linux 上工作,那么默认情况下它在 -std=gnu11-std=gnu90 模式下工作,并且 POSIX(和其他一些)符号集在您不需要的情况下可见设置_XOPEN_SOURCE_POSIX_C_SOURCE 或其他类似的宏。如果您使用-std=c11-std=c99 或(打消这个念头)-std=c90,那么 POSIX 和 GNU 符号默认不可用;您必须定义 _XOPEN_SOURCE_POSIX_C_SOURCE 才能看到 POSIX 符号。
猜你喜欢
  • 2011-07-31
  • 2011-09-24
  • 2020-10-02
  • 1970-01-01
  • 2019-08-09
  • 2021-12-25
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多