c - 在 MSVC6 中处理大于 2 GB 的文件!

标签 c windows file

Windows MSVC6 中的普通文件相关函数,如 fseek、ftell 等,只能处理最大 2GB 的文件(据我目前的理解,如有错误,请指正)。

我想处理大于 2GB 的文件。我该怎么办?有哪些功能可用?

最佳答案

我不确定,但限制是 4 GB,OS API 和使用这些 API 的标准库以及使用的文件系统。

ftellfseek 函数使用 32 位整数,因此您将无法处理大于 4GB 的文件。您将不得不直接使用 OS API。

所以你必须小心你使用的函数,例如为了获取文件大小你必须使用 ex 函数 GetFileSizeEx ,因此您必须确保使用使用 64 位文件偏移量的函数。同样适用于 SetFilePointerEx

最后一句话,您知道某些文件系统限制了最大文件大小,FAT32 设计上不会处理大于 4 GB 的文件,NTFS 可以处理任何大小,但 API 通常是为 4 GB 或更小的大文件制作的。

关于c - 在 MSVC6 中处理大于 2 GB 的文件!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091304/

相关文章:

java - FileWriter 使用什么异常

c - 如何找到二进制文件的结尾?

c++ - 我怎样才能解决我的win32读取图像文件代码中的这个错误

windows - 无法为 "14/1033/styles/Themable/corev4.css"创建缓存安全 URL,找不到文件。请验证该文件是否存在于 layouts 目录下

windows - Windows 上类似 Rsync 的解决方案?

java - 从java中的单独文件夹中读取文本文件

c - 为什么 strtod 不能以正确的方式工作?

c++ - 在不同处理器之间共享内存时需要哪些东西?

c++ - Python 列表和 c/c++ 数组

java - 分析和检查由 Java 加载的 DLL 中的内存分配