我正在开发一个必须完全兼容 POSIX 的系统
我正在使用 gcc 和 c++ 在 Fedora Core 14 上开发它
我不想使用任何不是 POSIX 的东西
我如何确保我保持这一点?
有编译器设置吗?
我正在使用代码块
不,没有“神奇的编译器开关”来确保您只使用 Posix API。
您可以在此处获取 POSIX 规范:
该套件允许您检查您的应用程序是否符合 POSIX API:
这实际上与编译器没有任何关系。POSIX 指定实用程序、接口和随附的头文件——编译器只关心编程语言的细节。
也就是说,如果您使用的头文件集实现良好,您应该能够使用适当的-D
和-U
选项来启用/禁用您正在使用的功能集gcc
。
例如,包含fcntl.h
将不允许访问,fallocate()
除非_GNU_SOURCE
已定义。使用相同的标头,您需要定义_POSIX_C_SOURCE
to200809L
或更大的值F_DUPFD_CLOEXEC
fcntl()
才能使用。