Windows MSVC6 中的普通文件相关函数,如 fseek、ftell 等,只能处理最大 2GB 的文件(据我目前的理解,如有错误,请指正)。
我想处理大于 2GB 的文件。我该怎么办?有哪些功能可用?
最佳答案
我不确定,但限制是 4 GB,OS API 和使用这些 API 的标准库以及使用的文件系统。
ftell
、fseek
函数使用 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/