1

我正在开发一个必须完全兼容 POSIX 的系统

我正在使用 gcc 和 c++ 在 Fedora Core 14 上开发它

我不想使用任何不是 POSIX 的东西

我如何确保我保持这一点?

有编译器设置吗?

我正在使用代码块

4

2 回答 2

3

不,没有“神奇的编译器开关”来确保您只使用 Posix API。

您可以在此处获取 POSIX 规范:

该套件允许您检查您的应用程序是否符合 POSIX API:

于 2013-01-03T19:54:00.380 回答
1

这实际上与编译器没有任何关系。POSIX 指定实用程序、接口和随附的头文件——编译器只关心编程语言的细节。

也就是说,如果您使用的头文件集实现良好,您应该能够使用适当的-D-U选项来启用/禁用您正在使用的功能集gcc

例如,包含fcntl.h将不允许访问,fallocate()除非_GNU_SOURCE已定义。使用相同的标头,您需要定义_POSIX_C_SOURCEto200809L或更大的值F_DUPFD_CLOEXEC fcntl()才能使用。

于 2013-01-03T19:54:50.557 回答