代码之家  ›  专栏  ›  技术社区  ›  Daniel Trebbien

写一个大文件就需要大文件吗?

  •  10
  • Daniel Trebbien  · 技术社区  · 14 年前

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

    从我读到的题为 Cannot write >2gb index file “在clucene dev邮件列表中,似乎 奥拉格档案 可能需要编写大型文件,但讨论中的参与者正在使用 O_RDWR 不是 OWRWORN ,所以我不确定。

    2 回复  |  直到 6 年前
        1
  •  12
  •   R.. GitHub STOP HELPING ICE    14 年前

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

        2
  •  11
  •   caf    14 年前

    如果你这样做

    #define _LARGEFILE_SOURCE
    #define _FILE_OFFSET_BITS 64
    

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

    additionally see