0

我正在尝试编译使用直接 I/O 的 C 代码。有一行使用 O_DIRECT 标志:

fd = open(fileName,O_DIRECT | O_RDWR | O_CREAT,0600)

英特尔和 GNU 很好地理解了这一点并进行了编译。Cray 无法通过 O_DIRECT。它不认为它被设置在任何地方。Cray 编译器是否有这个变量的替代方案?或者它可以不做直接 I/O 吗?

4

1 回答 1

0

为编译器命令提供-D'_GNU_SOURCE'标志。它将允许它选择一些东西,主要是O_DIRECT在头文件/usr/include/bits/fcntl-linux.h中它不会选择的东西。

于 2021-01-29T22:40:55.890 回答