use*_*419 7 c++ windows file-io
我正在编写一个c ++程序来读/写一个大文件(可能大于60GB).通过谷歌搜索问题,似乎32位系统中的文件io有2GB限制(我使用的是Windows 7 64位,但我的程序是用mingw32编译的).在我的程序中,我一次向文件写入10个整数,所有这些数字都是根据某些算法随机生成的.即使文件大小超过40GB,程序似乎也可以运行,但是我无法检查程序读取的数据是否真的是存储在文件中的数据或一些垃圾数字.但无论如何,该程序不会报告任何警告或错误.这是否真的可以在32位程序中读/写大于60GB的文件?
Fat32 文件系统上的文件大小有限制(我认为最大 4GB)。Windows 7 绝对不应该默认使用该文件系统。
此外,在 32 位系统上,您可以使用CreateFileMapping /MapViewOfFile一次映射到内存的文件大小有限制。但是,fstream 内部不使用 CreateFileMapping/MapViewOfFile,因此文件大小没有限制(除了文件系统限制)。即使使用 CreateFileMapping,您也可以将较大文件的一部分映射到内存中,因此除了文件系统施加的限制之外,没有任何限制。
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |