如果我想要写一个大文件 (O_WRONLY
) 或者追加到一个大文件 (O_APPEND | O_WRONLY
),是否需要使用 O_LARGEFILE
标志?
从 CLucene-dev 邮件列表中一个名为 "Cannot write >2gb index file" 的帖子中可以看出,似乎需要使用 O_LARGEFILE
来写入大文件。但是,在该讨论中的参与者使用的是 O_RDWR
,而不是 O_WRONLY
,因此我不确定。
如果我想要写一个大文件 (O_WRONLY
) 或者追加到一个大文件 (O_APPEND | O_WRONLY
),是否需要使用 O_LARGEFILE
标志?
从 CLucene-dev 邮件列表中一个名为 "Cannot write >2gb index file" 的帖子中可以看出,似乎需要使用 O_LARGEFILE
来写入大文件。但是,在该讨论中的参与者使用的是 O_RDWR
,而不是 O_WRONLY
,因此我不确定。
-D_FILE_OFFSET_BITS=64
选项的open
版本会透明地向内核传递O_LARGEFILE
。而使用32位off_t
的版本则不会。这反过来决定了POSIX语言中“打开文件描述符中建立的最大偏移量”,从而导致许多函数在产生无法表示为32位off_t
的文件偏移量时报告错误。最大值与打开的文件描述符相关联,而不是进程,因为打开的文件描述符可以在进程之间共享。 - R.. GitHub STOP HELPING ICEO_LARGEFILE
。如果您在32位系统上使用64位的off_t
,它会自动设置,否则(在64位系统上或者32位系统上使用32位off_t
),不应该设置。 - R.. GitHub STOP HELPING ICE_FILE_OFFSET_BITS
?你能提供链接吗? - Ciro Santilli OurBigBook.com