Creating a File View
为了映射一个文件的数据到进程的虚拟内存,你必须创建一个文件的视图。MapViewofFile和MapViewofFileEX使用CreateFileMapping返回的句柄,在虚拟地址空间创建一个文件或者文件一部分的视图。 当访问标志(access flag)与CreateFileMapping创建内存映射对象时所规定的标志不一致时,函数会失败。
MapViewofFile函数返回一个指向文件视图的指针。通过解引用一个在MapViewofFile中声明的地址范围的指针,一个应用可以从文件中读数据并写数据到文件。写数据到文件视图导致了文件映射对象的改变。对磁盘文件实质的写入是由系统控制的。当文件映射对象被写入的时候数据实际上并没有被写到文件中。相反,大多数的文件输入和输出都被缓存了下来用于提高系统通用性能。系统可以通过调用FlushViewofFile覆盖这种行为,强迫系统立刻执行磁盘转换。
MapViewofFileEx函数和MapViewofFile函数工作原理基本一样,除了它可以通过lpvBase参数来声明,在进程虚拟地址空间,文件视图的基地址。如果在声明的地址上没有足够的空间,,这个调用会失败。因此,如果你在多进程中必须映射一个文件到相同的地址,那么进程间需要协商一个合适的地址。lpvBase参数必须是系统内存分配粒度(system memory allocation granularity )的整数倍否则调用会失败。为了获取系统内存分配粒度,使用GetSystemInfo函数,它填充SYSTEM_INFO结构的成员。
一个应用可以创建同一个文件映射对象的多个视图。一个文件视图可以和它所来自的文件映射对象有不同的大小,但是必须小于文件映射对象。MapViewofFile中由dwOffsetHigh和dwOffsetLow参数所声明的偏移必须是系统粒度的整数倍。
Creating a File View的更多相关文章
- 【IOS笔记】Creating Custom Content View Controllers
Creating Custom Content View Controllers 自定义内容视图控制器 Custom content view controllers are the heart of ...
- View Controller Programming Guide for iOS---(四)---Creating Custom Content View Controllers
Creating Custom Content View Controllers 创建自定义内容视图控制器 Custom content view controllers are the heart ...
- Creating a Table View Programmatically
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/Cre ...
- Unity3d导入工程出现错误“Creating unique file”的解决方法
Unity3d导入工程出现错误“Creating unique file:creating file Temp/tempFile failed.Please ensure there is enoug ...
- useradd 报Creating mailbox file: File exists
问题描述:增加一个用户时,报下面的错误:[root@master ~]# useradd hadoopuseradd: warning: the home directory already exis ...
- Creating Excel File in Oracle Forms
Below is the example to create an excel file in Oracle Forms.Pass the Sql query string to the below ...
- Building Xcode iOS projects and creating *.ipa file from the command line
For our development process of iOS applications, we are using Jenkins set up on the Mac Mini Server, ...
- 解决linux下创建用户时出现 Creating mailbox file: 文件已存在
原来linux下添加用户后,会在系统里自动加一个邮箱(系统邮箱),路径是:/var/spool/mail/用户名. 可以直接用命令#rm -rf /var/spool/mail/用户名 ...
- Creating mailbox file: 文件已存在
原来linux下添加用户后,会在系统里自动加一个邮箱(系统邮箱),路径是:/var/spool/mail/用户名.可以直接用命令#rm -rf /var/spool/mail/用户名 这样就可以再次添 ...
随机推荐
- ORACLE 12c RAC日常维护命令
转至:https://blog.51cto.com/ixdba/901545 CRS提供了很多命令可以管理和查看集群服务状态,常用的有crs_stat.crs_start.crs_stop.crsct ...
- 实现按钮跳转&下划线等
按钮点击跳转页面:(在java文件里写) 1 public class MainActivity extends AppCompatActivity { 2 3 private Button mbtn ...
- omnet++:官方文档翻译总结(三)
翻译总结自:Turning it Into a Real Network - OMNeT++ Technical Articles 接官方文档翻译总结(二),本节主要是真实网络的搭建 Part 4 - ...
- 微信小程序断网处理
wx.onNetworkStatusChange(function callback) 参数 function callback 网络状态变化事件的回调函数 参数 Object res 属性 类型 说 ...
- RocketMQ 事务消息示例分析
@ 目录 1 示例模式 2 安装与配置 RocketMQ 3 运行服务 3.1 启动 NameServer 3.2 启动 broker 4 生产者 4.1 事务监听器 4.2 事务消息生产者 5 消费 ...
- XML与HTML的主要区别
XML 与 HTML 的主要差异 XML 不是 HTML 的替代. XML 和 HTML 为不同的目的而设计: XML 被设计为传输和存储数据,其焦点是数据的内容. HTML 被设计用来显示数据,其焦 ...
- 使用Truffle 部署智能合约
使用Truffle 部署智能合约 之前我们使用Geth,原生的以太坊Golang工具,分析了创世区块的参数内容,在本地创建了私有以太坊区块链,并使用两个账户进行了挖矿和转账操作,对以太坊有了基本了解. ...
- java 和groovy的混合使用
在应用中,我们可以在一个Java类.一个Groovy类或者一个Groovy脚本中实现某个特定功能.之后可以在Java类.Groovy类或Groovy脚本中调用该功能. 在groovy 使用groovy ...
- (九)React Ant Design Pro + .Net5 WebApi:后端环境搭建-IdentityServer4-简单配置
一.简介 IdentityServer4 是用于 ASP.NET Core 的 OpenID Connect 和 OAuth 2.0 框架,通过中间件的方式集成.JWT(json web token) ...
- 前端知识之JavaScript知识
前端之javaScript JavaScript html :展示文档内容的 css:控制文档的显示效果 js:控制文档的交互效果 是脚本语言 一种轻量级的编程语言 可插入html页面的编程代码 js ...