文件映射的基本函数

首先文件映射比普通传输文件要在读取过程中效率更好。

定义:文件映射指的是一个文件到内存的映射,映射即一一对应,我的理解就是一个文件的虚拟地址到内存地址上的映射

基本函数:

CreateFile():创建文件

有七个参数 第一个参数为创建文件的路径

CreateFileMapping(1,2,3,4,5,6):创建一个文件映射

HANDLE WINAPI CreateFileMapping(
  _In_      HANDLE hFile,
  _In_opt_  LPSECURITY_ATTRIBUTES lpAttributes,
  _In_      DWORD flProtect,
  _In_      DWORD dwMaximumSizeHigh,//高位文件的大小
  _In_      DWORD dwMaximumSizeLow,//低位文件的大小
  _In_opt_  LPCTSTR lpName
);

返回值是一个HANDLE句柄

参数1:hFile指定了待映射到进程地址空间的文件句柄

参数2:

参数3:安全设置 通常设置为NULL

MapViewOfFile():将文件映射到进程的地址空间

LPVOID WINAPI MapViewOfFile(
  _In_  HANDLE hFileMappingObject,
  _In_  DWORD dwDesiredAccess,
  _In_  DWORD dwFileOffsetHigh,
  _In_  DWORD dwFileOffsetLow,
  _In_  SIZE_T dwNumberOfBytesToMap
);

参数1:CreateFileMapping()的返回值HANDLE

参数2:权限 通常用 FILE_MAP_ALL_ACCESS 表示所有权限

参数5:所映射文件的大小

UnmapViewOfFile()取消文件映射

参数:一个指针指向MapViewOfFile()的地址( 类型不一致可以强转)

memcpy(1,2,3):内存拷贝 即从需要拷贝的内存地址的起始位置开始 拷贝n个字节到 指定的目标内存地址的起始位置

参数1:目标地址

参数2:源地址(需要拷贝的内容)

参数3:需要拷贝的字节的大小

注:内存拷贝与字符串strcpy_s不同 内存拷贝可以拷贝多种格式 比如.exe 等





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值