当前位置:  开发笔记 > 编程语言 > 正文

写大文件

如何解决《写大文件》经验,为你挑选了2个好方法。

我尝试写一个大文件,但似乎它不适用于大于2GB的文件.我尝试过boost :: iostreams :: file_sink.这只是增强流的限制吗?还有其他方法我可以在Win64和win32上写一个大文件吗?



1> Aaron Digull..:

这取决于:

您正在使用的文件系统.像FAT这样的旧文件系统只允许最大2GB的文件.使用NTFS.

必须编译您的库以允许大文件(64位寻找偏移).如果他们使用32位整数来搜索文件(检查调用"seek"和"tell"的参数和结果),你只能访问2GB(2 ^ 31位,第32位是符号+/-)

这也可能有所帮助:http://www.boost.org/doc/libs/1_37_0/libs/iostreams/doc/faq.html#offsets



2> graham.reeds..:

在Win32/64中,ReadFile和WriteFile可以写入大于4gb的文件.定位通过SetFilePointerEx中的64位_LARGE_INTEGER值完成.同样,为了获得文件大小,您需要GetFileSizeEx而不是基本的GetFileSize.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有