当前位置: 首页 > news >正文

怎么提高网站加载速度百度云官网登录首页

怎么提高网站加载速度,百度云官网登录首页,如何推广公众号方法,直通车推广计划方案文章目录 前言一、文件的创建与打开CreateFile1. 创建新的空白文件2. 打开已存在文件3. 打开一个文件时,如果文件存在则打开,如果文件不存在则新创建文件4.打开一个文件,如果文件存在则打开文件并清空内容,文件不存在则 新创建文件…

文章目录

  • 前言
  • 一、文件的创建与打开CreateFile
    • 1. 创建新的空白文件
    • 2. 打开已存在文件
    • 3. 打开一个文件时,如果文件存在则打开,如果文件不存在则新创建文件
    • 4.打开一个文件,如果文件存在则打开文件并清空内容,文件不存在则 新创建文件
  • 二、关闭文件句柄CloseHandle
  • 总结


前言

Windows 程序设计7:文件的创建、打开与关闭。


一、文件的创建与打开CreateFile

Windows系统中文件的创建与打开都是使用同一个API函数CreateFile。通过传递不同的参数值来表示是要创建一个新文件还是要打开一个已经存在的文件。函数原型如下:

HANDLE CreateFile(LPCTSTR                lpFileName,          // 文件名或设备名DWORD                 dwDesiredAccess,     // 访问模式DWORD                 dwShareMode,         // 共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes,// 安全属性DWORD                 dwCreationDisposition,// 创建方式DWORD                 dwFlagsAndAttributes, // 文件属性HANDLE                hTemplateFile        // 模板文件句柄
);
// 该函数用于打开文件或I/O设备,常见的I/O设备有:
// 文件、文件流、目录、物理磁盘、卷、控制台缓冲区、磁带驱动器、通信资源、邮筒和管道等

返回值:该函数返回一个句柄,该句柄可以根据文件或设备,以及指定的标志和属性访问文件或设备以获取各种类型的I/O。如果成功,返回文件或设备的句柄;如果失败,返回 INVALID_HANDLE_VALUE。可以通过 GetLastError 获取错误代码。文件或设备的句柄就相当于其代号,有了句柄之后就可以对其进行其他操作。

参数说明:
1.参数lpFileName:LPCTSTR类型

要创建或打开的文件的路径(可以是绝对路径或相对路径)。

也可以是设备名(如 COM1、LPT1)。

2.dwDesiredAccess:DWORD类型

指定对文件的访问权限,创建或打开这个文件之后我们要对这个文件干什么,就赋予相应的权限。常见值:

GENERIC_READ:读取权限。

GENERIC_WRITE:写入权限。

GENERIC_READ | GENERIC_WRITE:读写权限。
0:不希望从设备读取数据或向设备传入数据

3.dwShareMode:DWORD类型

指定文件的共享模式。常见值:

FILE_SHARE_READ:允许其他进程读取文件。

FILE_SHARE_WRITE:允许其他进程写入文件。

FILE_SHARE_DELETE:允许其他进程删除文件。

0:独占访问,不允许其他进程访问。

4.lpSecurityAttributes:LPSECURITY_ATTRIBUTES类型

指向 SECURITY_ATTRIBUTES 结构的指针,用于设置文件的安全属性。

通常设置为 NULL,表示使用默认安全属性。

5.dwCreationDisposition:DWORD类型

指定文件存在或不存在时的操作。常见值:

CREATE_NEW:创建新文件,如果文件已存在则失败。

CREATE_ALWAYS:创建新文件,如果文件已存在则覆盖。

OPEN_EXISTING:打开现有文件,如果文件不存在则失败。

OPEN_ALWAYS:打开文件,如果文件不存在则创建。

TRUNCATE_EXISTING:打开文件并将其截断为 0 字节(清空文件内容),如果文件不存在则失败。

6.dwFlagsAndAttributes:DWORD类型

指定文件属性和标志。允许我们设置一些标志来微调与设备之间的通信,如果设备是一个文件,还能够设置文件的属性。常见值:

FILE_ATTRIBUTE_NORMAL:普通文件,无特殊属性。

FILE_ATTRIBUTE_HIDDEN:隐藏文件。

FILE_ATTRIBUTE_READONLY:只读文件。

FILE_FLAG_DELETE_ON_CLOSE:文件关闭后自动删除。

FILE_FLAG_OVERLAPPED:启用异步 I/O。

7.hTemplateFile:HANDLE类型

指向模板文件的句柄。通常设置为 NULL,用的不是很多。

1. 创建新的空白文件

在D盘下创建一个"新年快乐.txt"文件,即读又写的权限,在使用时其他程序可以以读的权限打开,无其他特殊属性。

	HANDLE handle1 = CreateFile(_T("D:\\新年快乐.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);if (handle1 != INVALID_HANDLE_VALUE) // 函数执行成功{MessageBox(NULL, _T("文件成功创建"), _T("提示"), MB_OK);}else{MessageBox(NULL, _T("文件没有成功创建"), _T("提示"), MB_OK)}

运行后文件创建成功
在这里插入图片描述
D盘内也出现了该文件
在这里插入图片描述
在这里插入图片描述

2. 打开已存在文件

接下来使用CreateFile打开上述创建的文件

	HANDLE handle1 = CreateFile(_T("D:\\新年快乐.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (handle1 != INVALID_HANDLE_VALUE) // 函数执行成功{MessageBox(NULL, _T("文件成功打开"), _T("提示"), MB_OK);}else{MessageBox(NULL, _T("文件没有成功打开"), _T("提示"), MB_OK)}

运行后提示文件打开
在这里插入图片描述

如果我们将这个文件重命名,则D盘内不存在“新年快乐.txt”
在这里插入图片描述
此时运行则无法打开文件
在这里插入图片描述
利用GetLastError()函数可以看到错误码为2,即系统找不到指定文件。
在这里插入图片描述
GetLastError()的相关用法见GetLastError相关用法

3. 打开一个文件时,如果文件存在则打开,如果文件不存在则新创建文件

上述打开一个不存在的文件时,直接无法打开。这里实现打开一个不存在的文件时,创建该文件

	HANDLE handle1 = CreateFile(_T("D:\\新年快乐.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);if (handle1 != INVALID_HANDLE_VALUE) // 函数执行成功{MessageBox(NULL, _T("文件成功打开"), _T("提示"), MB_OK);}else{DWORD dwerror = GetLastError();MessageBox(NULL, _T("文件没有成功打开"), _T("提示"), MB_OK);}

可以看见新创建了一个“新年快乐.txt”
在这里插入图片描述
并将文件打开了
在这里插入图片描述

4.打开一个文件,如果文件存在则打开文件并清空内容,文件不存在则 新创建文件

然后,实现打开一个文件,如果文件存在则打开并清空内容,文件不存在则新创建文件
先在D盘中的“新年快乐.txt”中输入一些内容
在这里插入图片描述
代码只需要将上述的OPEN_ALWAYS换为CREATE_ALWAYS即可
运行后文件内容被清空了
在这里插入图片描述

二、关闭文件句柄CloseHandle

CloseHandle的函数原型如下,本质上是关闭刚刚利用CreateFile打开的文件的句柄。

BOOL CloseHandle(HANDLE hObject  // 要关闭的句柄
);

CloseHandle函数关闭一个内核对象,其中包括文件、文件映射、线程、安全和同步对象等等。
在CreateThread成功之后会返回一个hThread的线程句柄,且内核对象计数+1,CloseHandle之后,引用计数-1,当变为0时,系统删除该内核对象。

若在线程执行之后,没有调用CloseHandle,在进程执行期间,将会造成内核对象的泄露,相当于句柄泄露,但不同于内存泄露。这势必会对系统的效率带来一定程度上的负面影响。但当进程结束退出之后,系统会自动清理这些资源。

参数:HANDLE hObject代表一个已经打开的对象句柄,例如文件句柄、线程句柄、进程句柄等。

返回值:布尔类型,TRUE表示函数执行成功;FALSE表示函数执行失败,可以利用GetLastError获得错误码。

简单使用时按图示进行使用即可

在这里插入图片描述


总结

Windows 程序设计7:文件的创建、打开与关闭。

http://www.dt0577.cn/news/50007.html

相关文章:

  • 怎么做刷钻网站推广网络推广平台
  • 网站如何做外链企业内训机构
  • 怎么用模板做网站百度指数查询官方下载
  • 建站用wordpress 起飞了营销公关
  • 模板网站建设哪家专业最新国际新闻头条新闻
  • 手机软件页面设计网站中国十大seo公司
  • 聊城网站建设品牌免费产品推广软件
  • 做模具在哪个网站找工作百度热搜榜排名今日p2p
  • 个人备案的域名拿来做别的网站百度关键词排名qq
  • 女装网站建设费用预算关键词优化一年多少钱
  • 学生制作网页教程班级优化大师下载安装app
  • 网站建设项目经理的工作弹窗广告最多的网站
  • 炫酷网站界面设计搜索引擎营销的英文缩写是
  • 网页文档五种关键词优化工具
  • 苏州交友网站建设如何建立一个网站
  • 你买域名我送网站百度软件市场
  • 见网站建设客户技巧今晚赛事比分预测
  • app手机电视网站设计方案上海搜索关键词排名
  • 手机摄影网站首页找平台推广
  • 洛龙区网站制作建设费用乔拓云智能建站系统
  • 自己做网站要会什么软件下载北京网站优化方案
  • 免费购物网站制作营销是什么意思
  • 日照市五莲县网站建设企业网上的推广
  • mac编辑page转wordpress连云港seo优化
  • wordpress 登录后跳转下载优化大师app
  • 电商网站统计怎么做汕头网站关键词推广
  • 做书架的网站小程序
  • 菏泽网站建设哪好企业培训员工培训平台
  • 品牌网站建设定位免费收录链接网
  • 昆明做网站那家好seo关键词排名系统