社区
语言基础/算法/系统设计
帖子详情
关于内存映射文件大小的问题
wintergoes
2009-05-24 08:37:13
从网上看说内存映射文件的大小在运行期是不能被更改的,是否是这样?
如果我想增加映射文件的内容时,就要在创建的时候创建一个足够大的内存对象,这样如果我用不了这么多空间,保存的文件后面是不是会有一大堆空白的地方?
请大侠指教
...全文
172
7
打赏
收藏
关于内存映射文件大小的问题
从网上看说内存映射文件的大小在运行期是不能被更改的,是否是这样? 如果我想增加映射文件的内容时,就要在创建的时候创建一个足够大的内存对象,这样如果我用不了这么多空间,保存的文件后面是不是会有一大堆空白的地方? 请大侠指教
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yshuui
2009-05-25
打赏
举报
回复
空白是#0
thenshesaid
2009-05-24
打赏
举报
回复
用二进制编辑软件打开TXT看看,后面不一定就是SPACE
wintergoes
2009-05-24
打赏
举报
回复
谢谢各位,我把一段代码贴上来,是DELPHI的,加了注释
procedure TForm1.btnCreateClick(Sender: TObject);
var
PText, Ps: PChar;
ErrorID: DWord;
strSource: string;
begin
// 文件句柄
fHandle := CreateFile(PChar('c:\response.txt'), GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ, nil, OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN, 0);
// 用fHandle创建内存映射对象,大小为500字节
MapViewHandle := CreateFileMapping(fHandle, 0, PAGE_READWRITE, 0, 500, 'MapViewTest');
// 获取映射对象的指针地址
PText := MapViewOfFile(MapViewHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);
// 给字符串变量赋值
strSource := '123fjfjsoijdfoiejflkdsjflsjdfoiejwoijfsjdfljd';
// 将字符串内容复制到映射对象中
StrCopy(PText, PChar(strSource));
// 关闭映射对象和文件句柄
CloseHandle(MapViewHandle);
CloseHandle(fHandle);
end;
这个过程对txt文件进行了修改,文本文件的内容为'123fjfjsoijdfoiejflkdsjflsjdfoiejwoijfsjdfljd'后面由很多个空格,就是把500个字符填充满了
会思考的草
2009-05-24
打赏
举报
回复
事实上提交的是一段虚拟地址空间,不一定当时就请求分配物理内存。
地球人呢
2009-05-24
打赏
举报
回复
我以前用过内存映射文件,运行时确定是没办法改变大小, 不过在你确定的文件的实际大小后,可以利用BOOL SetEndOfFile( HANDLE hFile )改变物理文件大小.
biweilun
2009-05-24
打赏
举报
回复
是有空白没错 很多人初始化的时候都memset(...,0)的
我编人生不编程
2009-05-24
打赏
举报
回复
操作系统的内存管理是虚拟内存
虚拟地址
对单个应用程序来说是看起来很多空白
但是实际上是断断续续的空间~~
hibernate3.3.1的jar包
hibernate3.3.1的jar包!!hibernate3.3.1的jar包hibernate3.3.1的jar包hibernate3.3.1的jar包
内存映射
文件原理
内存映射
文件
内存映射
文件与虚拟内存的区别映射原理mmap() 函数mmap基础概念mmap映射原理mmap优点mmap相关函数
内存映射
文件与虚拟内存的区别
内存映射
文件是由操作系统支持的一种文件处理方式,通过文件映射,让用户处理磁盘文件时就如同操作内存一样。再处理大文件时,效率比传统IO高很多。 虚拟内存和
内存映射
文件都是将一部分文件加载到内存,另一部分文件保存在磁盘上的一种机制。但是二者是有区别的: 架构不同,虚拟内存是构建在物理内存之上的,引入原因是实际物理内存无法满足程序所需的内存空间;内
[笔记]Windows核心编程《十七》
内存映射
文件
参考 文章目录前言一、映射到内存的可执行文件和DLLCreateProcess调用过程二、映射到内存的数据文件三、使用
内存映射
文件四、用
内存映射
文件来处理大文件五、
内存映射
文件和一致性六、给
内存映射
文件的指定基地址七、
内存映射
文件的实现细节八、用
内存映射
文件再进程间共享数据九、以页交换文件为后背存储器的
内存映射
文件十、 稀疏调拨的
内存映射
文件 前言
内存映射
文件 与虚拟内存相似,
内存映射
文件允许开发人员预定一块地址空间区域并给区域调拨物理存储器。不同之处在于
内存映射
文件的物理存储器来自磁盘上已有的文件,而不
操作系统——
内存映射
文件
内存映射
文件 1.定义:
内存映射
文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。
内存映射
文件与虚拟内存有些类似,通过
内存映射
文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用
内存映射
文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,使得
内存映射
文件在处理大数据量的文件时能起到相当重要的作用
Python
内存映射
文件详解与实战指南
通过本篇文章,深入了解了Python中的
内存映射
文件,从基本概念到高级应用和注意事项都有所涉及。
内存映射
文件是一项强大的技术,为文件处理和数据共享提供了高效的解决方案。首先,学习了
内存映射
文件的基本概念,包括如何使用mmap模块将文件映射到内存中,以及基本的读写操作。接着,探讨了高级的读写操作,包括随机访问和动态调整
文件大小
,展示了
内存映射
文件在处理大型数据集和共享内存方面的优越性。在实际应用中,
内存映射
文件可以广泛应用于数据处理、文件编辑器、共享内存和性能优化等领域。
语言基础/算法/系统设计
16,743
社区成员
33,238
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章