首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Windows C++ API创建任意大小的文件

使用Windows C++ API创建任意大小的文件
EN

Stack Overflow用户
提问于 2011-01-21 04:52:50
回答 5查看 1.5K关注 0票数 4

我想使用Windows C/C++ API创建一个任意大小的文件。我正在使用具有32位虚拟地址内存空间的Windows XP service pack 2。我对CreateFile很熟悉。

然而,CreateFile没有大小参数,我想要传递一个大小参数的原因是允许我创建允许用户访问预定大小的数据结构的内存映射文件。你能告诉我合适的Windows C/C++ API函数,它允许我创建一个任意预定大小的文件吗?谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-01-21 05:37:04

要在UNIX上执行此操作,请查找(RequiredFileSize - 1),然后写入一个字节。字节的值可以是任何值,但最明显的选择是零。

票数 2
EN

Stack Overflow用户

发布于 2011-01-21 04:56:10

像往常一样CreateFileSetFilePointerEx到所需的大小,然后调用SetEndOfFile

票数 8
EN

Stack Overflow用户

发布于 2011-01-21 05:03:35

你不需要一个文件,你可以使用页面文件作为你的内存映射文件的备份,从MSDN CreateFileMapping函数页面:

如果hFile为INVALID_HANDLE_VALUE,则调用进程还必须在dwMaximumSizeHigh和dwMaximumSizeLow参数中指定文件映射对象的大小。在这种情况下,CreateFileMapping创建一个指定大小的文件映射对象,该对象由系统分页文件支持,而不是由文件系统中的文件支持。

您仍然可以使用DuplicateHandle共享映射对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4752457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档