是个 O_LARGEFILE 如果我想做的就是编写一个大文件,则需要标记(O_WRONLY)或附加到大文件(O_APPEND | O_WRONLY)?

从我读到的标题为“不能写> 2GB索引文件“在Clucene-Dev邮件列表中,看来 O_LARGEFILE 可能需要写大文件,但是讨论中的参与者正在使用 O_RDWR, , 不是 O_WRONLY, ,所以我不确定。

有帮助吗?

解决方案

O_LARGEFILE 永远不要直接由应用程序使用。它是由64位偏移式兼容版本内部使用的 open 在libc中,当它使syscall到达内核时(Linux,或者可能是另一种带有此64位偏移模式 - iis-a second-class-class-citlassizen citizen sectizen nosense的内核)。只需确保始终包括 -D_FILE_OFFSET_BITS=64 在你的 CFLAGS 而且您永远不必担心任何事情。

其他提示

IIRC如果您这样做

#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64

在所有其他内容之前,您无需传递此标志。

另外看

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top