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/用户名 这样就可以再次添 ...
随机推荐
- shell中echo基础及高级用法详解-渐入佳境
--作者:飞翔的小胖猪 --创建时间:2021年2月19日 1.1 基础用法 echo命令用来输出文本,在shell脚本中用来输出提示信息用的比较多. 单引号:原样输出所有的内容,不用转义就能输出特殊 ...
- (三)目标检测算法之SPPNet
今天准备再更新一篇博客,加油呀~~~ 系列博客链接: (一)目标检测概述 https://www.cnblogs.com/kongweisi/p/10894415.html (二)目标检测算法之R-C ...
- 【计算机网络】TCP的三次握手与四次挥手
今天讲一下TCP的三次握手与四次挥手 1.首先说TCP 协议的特点:TCP是在不可靠的IP层之上实现的可靠的数据传输协议,它主要解决传输的可靠.有序.无丢失和不重复问题.TCP 是TCP/IP 体系中 ...
- Spark SQL和CSl
目录 1 2 3 4 1 import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession} object Demo1Sess { def ...
- querylist 在laravel框架中的简单采集数据(专业5)
//爬虫网站路由Route::get('/querylist/list','querylistControllers@querylist'); //控制器 <?phpnamespace App\ ...
- Java的jstat命令使用详解
jstat命令简介 jstat(Java Virtual Machine Statistics Monitoring Tool)是JDK提供的一个可以监控Java虚拟机各种运行状态信息的命令行工具.它 ...
- QQ聊天记录快速迁移
QQ聊天记录快速迁移 在工作中大家经常会用到QQ来沟通,但是很多时候在其它设备上登录QQ就无法查看到之前的聊天记录和图片,这是因为电脑上的QQ聊天记录一般都是保存在电脑本地硬盘里,所以我们在换设备登录 ...
- 《Unity shader入门精要》复习<第13章 关于NDC坐标和深度/法线纹理>
分为三个地方讲解. NDC(Normalize Device Coordinates)归一化的设备坐标 NDC坐标是世界空间坐标通过MVP变换之后再进行归一化得到的坐标.只需要再一步变换就能得到屏幕空 ...
- mysql or in union all 使用方法
or的用法 select * from bt where bt.ID =98 or bt.ID = 1222 or bt.ID = 8903; in 的用法 select * from bt wher ...
- 《前端运维》一、Linux基础--07Shell函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.shell中函数的定义格式如下: [ function ] funname [()] { action; [return ...