#define _POSIX_SOURCE是什么意思?

Sye*_*ain 4 c macros posix

如果我用#define _POSIX_SOURCEC语言编写程序,那么我可以获得什么好处。我可以访问更多的图书馆在我的计划或我可以调用一些功能是存在直接C.我的意思是毕竟请问这个神秘的宏手段?

Pab*_*blo 5

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

据我所知_POSIX_SOURCE,您应该_POSIX_C_SOURCE改用它。

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

#define _POSIX_C_SOURCE 200809L
Run Code Online (Sandbox Code Playgroud)

也可以看看

  • 如果您在使用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符号。 (3认同)