设为首页 加入收藏

TOP

一步一步学Linux C:内存映像那些事
2014-11-24 13:31:54 来源: 作者: 【 】 浏览:1
Tags:步一步 Linux 内存 映像 那些

内存映像其实就是在内存中创建一个和外存文件完全相同的映像。用户可以将整个文件映射到内存中也可以部分映射到内存。系统会将对内存映像的改动如实的反映到外存文件中。从而实现了通过内存映像对外存文件的操作。


内存映像的特点:


1、 可以加快对IO的操作速度。


2、 用户可以通过指针对文件进行操作,间接~~~


3、 实现了文件数据的共享,将外存文件映射到共享内存中,很方便的实现了数据共享,并能完成把数据保存到外存的工作。


注:内存映像只能对内部可以定位的文件进行操作,如普通文件。不能对管道,套接字文件进行操作。


创建内存映射:


start为指针通常设为NULL,表示映射内存有系统决定。因为指定内存会经常出错。


length为内存映像占用的内存空间大小。以字节为单位。


port表示内存映像的安全性。


PROT_EXEC表示被映像内存可能有机器码,可执行。


PORT_NONE表示被映像内存不能被访问。


PORT_READ表示被映像内存可读


PORT_WRITE表示被映像内存可写



flag内存映像标志:


MAP_FIXED表示如果无法从start地址建立内存映像,则出错返回。


MAP_PRIVATE表示对内存映像进行的改动不反映到外存文件中。


MAP_SHARED表示对内存映像进行的改动反映到外存文件中。


fd文件描述符


offset表示所映像的内容距文件头的距离。


撤销内存映射:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇一步一步学Linux C:让系统更安全.. 下一篇一步一步学Linux C:关于进程等待

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: