c++中共享内存操作函数解析(三)
来源:互联网 发布:微博sasaaaa的淘宝 编辑:程序博客网 时间:2024/06/06 04:31
OpenFileMapping
打开一个命名的文件映射对象。
HANDLE OpenFileMapping(
DWORD dwDesiredAccess, // access mode
BOOL bInheritHandle, // inherit flag
LPCTSTR lpName // objectname
);
dwDesiredAccess:
指定文件对象的访问权限。
这个参数可以是下表中的一个值。
值
描述
FILE_MAP_WRITE
读和写的访问权限。hFileMappingObject参数创建时,有PAGE_READWRITE保护属性。
FILE_MAP_READ
写的访问权限。hFileMappingObject参数创建时,有PAGE_READWRITE或者PAGE_READONLY保护属性。
FILE_MAP_ALL_ACCESS
和FILE_MAP_WRITE一样
FILE_MAP_COPY
写复制访问权限。如果创建映射文件对象时,有PAGE_WRITECOPY和此参数(FILE_MAP_COPY),会接收执行文件的视图。
bInheritHandle:
指定返回的句柄是否在进程创建机器被新的进程继承。如果为TRUE,则说明新的进程可以继承这个句柄。
lpName:
命名的文件映射对象的名称。如果有一个此名称的打开的文件映射对象并且映射对象的安全描述符和dwDesiredAcess参数冲突,这次打开操作是成功的。
返回值
如果函数返回成功,返回值是打开的指定的文件映射句柄。
如果函数执行失败,函数返回NULL,可以通过调用GetLastError函数获得详细的信息。
说明
OpenFileMapping函数返回的句柄可以被用于任何需要文件映射对象句柄的函数。
UnmapViewOfFile
从调用线程地址空间释放文件数据映像。
BOOL UnmapViewOfFile(
LPCVOID lpBaseAddress // startingaddress
);
lpBaseAddress:
文件映像的开始地址,这个值必须设定为MapViewOfFile函数的返回值。
返回值
如果函数返回成功,返回值非空,所有在指定区域的被用的空间被释放。
如果返回失败,返回值为0.详细信息可以通过调用GetLastError函数获得。
说明
虽然应用可以关闭创建文件映射对象的文件句柄,但是系统保持相应的文件为打开状态直到最后的文件映像被释放。
CloseHandle
关闭一个打开的对象句柄。
BOOL CloseHandle(
HANDLE hObject // handle to object
);
hObject:
打开对象的句柄。
返回值:
如果函数执行成功,返回为非零。
如果函数执行失败,返回值为0,可以通过GetLastError函数获得详细信息。
说明
CloseHandle函数可以关闭下面的对象:
· Access token –访问令牌
· Communications device ---通信设备
· Console input ---终端输入
· Console screen buffer ---终端屏幕缓冲去
· Event –事件
· File –文件
· File mapping—文件映射
· Job ---作业
· Mailslot –油槽
· Mutex –互斥
· Named pipe –命名管道
· Process –进程
· Semaphore –信号量
· Socket ---套接字
· Thread---线程
CloseHandle函数使指定的对象句柄无效,递减对象句柄计数,执行对象保留检查。在最后一个对象的句柄关闭后,这个句柄就会在系统中消失。
关闭一个线程句柄不会终止相应的线程。为了移除一个线程对象,必须终止这个线程,然后关闭线程对象。
用CloseHandle函数可以关闭由CreateFile函数返回的句柄。用FindClose函数关闭由FindFirstFile返回的句柄。
- c++中共享内存操作函数解析(三)
- c++中共享内存操作函数CreateFileMapping解析(一)
- c++中共享内存操作函数MapViewOfFile解析(二)
- shm*()--共享内存操作函数
- c语言如何操作内存(数据类型、函数在内存中解析简介)
- c语言如何操作内存(数据类型、函数在内存中解析简介)
- C语言中内存操作函数
- C语言中内存操作函数memset
- C语言中内存操作函数memcmp
- linux C共享内存函数
- c内存操作函数
- C内存操作函数
- 共享内存和操作共享内存几个函数的用法
- c#读写共享内存操作函数封装
- C语言共享内存-基本操作
- C语言中内存操作函数 - malloc/calloc ,free
- C语言中内存操作函数 - memcpy ,memmove
- c中内存函数
- 项目经理的岗位要求
- 安装LaTeX中文字体 xGBKFonts
- 快乐教鞭2.0新增功能介绍
- 第五周实验报告3
- 不想误会
- c++中共享内存操作函数解析(三)
- addEventListener第二个参数的handleEvent
- java 从入门到精通
- 如何成为一名优秀的C程序员
- 第五周实验报告4
- 传值与传地址的区别
- Curling 2.0——蛋疼的一道题
- 获得文件存在的时间
- OpenCV深入学习(4)--Mat元素的获取方法