gpt4 book ai didi

c - off_t without -D_FILE_OFFSET_BITS=64 on a file > 2GB

转载 作者:太空狗 更新时间:2023-10-29 15:22:55 25 4
gpt4 key购买 nike

1- 我想知道,如果我尝试读取大于 2GB 的文件,会出现什么问题?无需使用选项 -D_FILE_OFFSET_BITS=64 编译我的程序使用 off_t并在 this page 上使用第二个函数?会出现段错误吗?

2- 我打算使用 this implementationoff64_t

#define _LARGEFILE64_SOURCE 1
#define _FILE_OFFSET_BITS 64

会不会有什么问题?

最佳答案

  1. stat()将失败,并设置 errno在这种情况下到 EOVERFLOW。这是linux 手册页说的是什么

    EOVERFLOW  stat()) path refers to a file whose size cannot be
    represented in the type off_t. This can occur when an application

    compiled on a 32-bit platform without -D_FILE_OFFSET_BITS=64 calls stat() on a file whose size exceeds (2<<31)-1 bits.

  2. 如果使用 -D_FILE_OFFSET_BITS=64 进行编译,则不需要使用 off64_t。 你可以继续使用 off_t ,它会变成 64 位的,所有的功能 处理文件和文件大小将成为 64 位感知。

关于c - off_t without -D_FILE_OFFSET_BITS=64 on a file > 2GB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com