网站建设怎么比较安全,哪里有整站优化,小型培训机构管理系统,西宁网络推广服务网作用#xff1a;
CreateFile可以用来打开很多设备#xff0c;例如#xff1a;文件、目录、串口、并口、邮件槽、命名管道、逻辑磁盘驱动器、物理磁盘驱动器等。
## 定义#xff1a; HANDLE CreateFile( LPCTSTR lpFileName, #xff08;文件名的指针#xff09; D… 作用
CreateFile可以用来打开很多设备例如文件、目录、串口、并口、邮件槽、命名管道、逻辑磁盘驱动器、物理磁盘驱动器等。
## 定义 HANDLE CreateFile( LPCTSTR lpFileName, 文件名的指针 DWORD dwDesiredAccess, 访问模式写 / 读 DWORD dwShareMode, 共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes, 安全属性的指针 DWORD dwCreationDisposition, 怎样创建 DWORD dwFlagsAndAttributes, 文件属性 HANDLE hTemplateFile 用于复制文件句柄 );
参数列表 参数 类型及说明 lpFileName LPCTSTR 文件的名字 dwDesiredAccess DWORD如果为 GENERIC_READ 表示允许对设备进行读访问如果为 GENERIC_WRITE 表示允许对设备进行写访问可组合使用如果为零表示只允许获取与一个设备有关的信息 dwShareMode DWORD 零表示不共享 FILE_SHARE_READ 和 / 或 FILE_SHARE_WRITE 表示允许对文件进行共享访问 lpSecurityAttributes SECURITY_ATTRIBUTES 指向一个 SECURITY_ATTRIBUTES 结构的指针定义了文件的安全特性如果操作系统支持的话 dwCreationDisposition DWORD常用属性 CREATE_NEW 创建文件如文件存在则会出错 CREATE_ALWAYS 创建文件会改写前一个文件 OPEN_EXISTING 文件必须已经存在。由设备提出要求 OPEN_ALWAYS 如文件不存在则创建它 TRUNCATE_EXISTING 讲现有文件缩短为零长度 dwFlagsAndAttributes DWORD 常用属性 FILE_ATTRIBUTE_ARCHIVE 标记归档属性 FILE_ATTRIBUTE_COMPRESSED 将文件标记为已压缩或者标记为文件在目录中的默认压缩方式 FILE_ATTRIBUTE_NORMAL 默认属性 FILE_ATTRIBUTE_HIDDEN 隐藏文件或目录 FILE_ATTRIBUTE_READONLY 文件为只读 FILE_ATTRIBUTE_SYSTEM 文件为系统文件 FILE_FLAG_WRITE_THROUGH 操作系统不得推迟对文件的写操作 FILE_FLAG_OVERLAPPED 允许对文件进行重叠操作 FILE_FLAG_NO_BUFFERING 禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块 FILE_FLAG_RANDOM_ACCESS 针对随机访问对文件缓冲进行优化 FILE_FLAG_SEQUENTIAL_SCAN 针对连续访问对文件缓冲进行优化 FILE_FLAG_DELETE_ON_CLOSE 关闭了上一次打开的句柄后将文件删除。特别适合临时文件 也可在 Windows NT 下组合使用下述常数标记 SECURITY_ANONYMOUS SECURITY_IDENTIFICATION SECURITY_IMPERSONATION SECURITY_DELEGATION SECURITY_CONTEXT_TRACKING SECURITY_EFFECTIVE_ONLY hTemplateFile HANDLE 如果不为零则指定一个文件句柄。新文件将从这个文件中复制扩展属性
用法举例
DWORD Openfile(LPCTSTR pszFileName,BOOL isWriteAble, BOOL isOverExsit, HANDLE m_hFile)
{DWORD dwRet ERROR_SUCCESS;if (pszFileName NULL){return ERROR_INVALID_PARAMETER;}try{m_hFile CreateFile(pszFileName, isWriteAble ? GENERIC_ALL :GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, NULL, isOverExsit ? CREATE_ALWAYS:(isWriteAble ?OPEN_ALWAYS:OPEN_EXISTING), FILE_ATTRIBUTE_NORMAL, NULL);if (m_hFile INVALID_HANDLE_VALUE){dwRet GetLastError();throw dwRet;}}catch (DWORD dwExp){dwRet dwExp;}catch (...){dwRet ERROR_FILE_INVALID;}return dwRet;
}