12

O_LARGEFILE如果我只想写一个大文件(O_WRONLY)或附加到一个大文件( ),是否需要标志O_APPEND | O_WRONLY

从我在 CLucene-dev 邮件列表上读到的标题为“无法写入 >2gb 索引文件”的线程中,似乎O_LARGEFILE可能需要编写大文件,但该讨论的参与者正在使用O_RDWR, not O_WRONLY,所以我不确定。

4

2 回答 2

16

O_LARGEFILE绝不应由应用程序直接使用。open当它对内核进行系统调用时(Linux,或者可能具有此 64 位偏移模式的另一个内核),它将由 libc 中的 64 位偏移兼容版本在内部使用-公民胡说八道)。只要确保始终包含-D_FILE_OFFSET_BITS=64在您的内容中CFLAGS,您就不必担心任何事情。

于 2010-08-06T16:53:09.757 回答
12

IIRC,如果你这样做

#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64

在所有其他包含之前,您不需要传递此标志。

另见

于 2010-05-22T14:42:18.653 回答