gpt4 book ai didi

C:读取大于 4 GB 的文件

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

我有某种只有文件句柄 (FILE*) 的阅读器。另一个进程不断写入我无法控制的同一文件。

现在,随着其他进程将图像附加到该文件,文件大小可能很快就会超过 4 GB 的限制。

读取器进程使用图像文件的句柄、偏移量和长度读取该文件,这些可以从一些数据库中找到。

我的问题是读者如何能够从 4GB 大小后出现的文件中读取 block 。

我在 Win32 机器上工作。

编辑:我也在 FreeBSD 机器上工作。

最佳答案

只需在 Windows 上使用标准 C API,freadfwrite 就可以很好地处理大文件。您将需要 _fseeki64 来查找 64 位位置。

您也可以使用普通的 WinAPI(ReadFile 等),它也可以毫无问题地处理 >4 GiB 文件。

[编辑]:您真正需要的唯一东西是 64 位搜索,ReadFile 通过 OVERLAPPED 结构提供(如一些评论者所提到的)。您可以当然也可以通过使用 SetFilePointer 获得这相当于 _fseeki64。读/写从来不是问题,无论文件大小,只求。

关于C:读取大于 4 GB 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565145/

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