我尝试写入一个大文件,但它似乎不适用于大于2 2GB的文件。我尝试过使用boost::iostreams::file_sink。这只是boost流的一个限制吗?有没有其他方法可以在Win64和win32上写一个大文件?
发布于 2008-11-19 14:59:53
这取决于:
这也可能有帮助:http://www.boost.org/doc/libs/1_37_0/libs/iostreams/doc/faq.html#offsets
发布于 2008-11-19 15:13:25
在Win32/64下,ReadFile和WriteFile可以写入大于4 4gb的文件。定位是通过SetFilePointerEx中的64位_LARGE_INTEGER值完成的。同样,要获得文件大小,您需要的是GetFileSizeEx而不是基本的GetFileSize。
发布于 2008-11-19 16:34:21
在NTFS中,唯一的实际限制是卷的大小。如果你想测试一下,你可以使用命令行创建一个虚拟文件:
fsutil文件创建新文件名
例如:
fsutil文件创建新的TestFile.bin 65536000000
假设您有一个NTFS卷,这应该会创建一个64 an的文件。
https://stackoverflow.com/questions/301995
复制相似问题