CreateFile函数详解(确实很详细)
CreateFile函数是Windows操作系统中用于创建或打开一个文件或设备的函数。下面是对CreateFile函数的详细解释:
函数原型:
HANDLE CreateFile(
LPCSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
参数解释:
1. lpFileName:要创建或打开的文件或设备的名称。可以是一个字符串,也可以是一个文件路径。
2. dwDesiredAccess:指定要对文件或设备进行的访问权限。可以是以下常量之一:
- GENERIC_READ:可读取文件。
- GENERIC_WRITE:可写入文件。
- GENERIC_EXECUTE:可执行文件。
- GENERIC_ALL:可读取、写入和执行文件。
- 其他专用权限常量,如FILE_READ_DATA、FILE_WRITE_DATA等。
3. dwShareMode:指定其他进程对文件或设备的访问方式。可以是以下常量之一:
- FILE_SHARE_READ:其他进程可读取文件。
- FILE_SHARE_WRITE:其他进程可写入文件。
- FILE_SHARE_DELETE:其他进程可删除文件。
- 0:禁止其他进程访问文件。
4. lpSecurityAttributes:指定文件或设备的安全属性。如果为NULL,则使用默认安全属性。
5. dwCreationDisposition:指定文件或设备的创建方式。可以是以下值之一:
- CREATE_NEW:创建新文件,如果文件已存在则创建失败。
- CREATE_ALWAYS:创建新文件,如果文件已存在则覆盖。
- OPEN_EXISTING:打开已存在的文件,如果文件不存在则打开失败。
- OPEN_ALWAYS:打开已存在的文件,如果文件不存在则创建新文件。
- TRUNCATE_EXISTING:截断已存在的文件,文件大小为0。
6. dwFlagsAndAttributes:指定文件或设备的属性和标志。可以是以下值之一或其组合:
- FILE_ATTRIBUTE_NORMAL:普通文件属性。
- FILE_FLAG_WRITE_THROUGH:将数据写入文件后立即将其传递给磁盘,而不是写入磁盘缓存。
- FILE_FLAG_OVERLAPPED:启用异步I/O。
- FILE_FLAG_DELETE_ON_CLOSE:关闭文件时删除文件。
- 其他文件属性和标志常量,如FILE_ATTRIBUTE_HIDDEN、FILE_FLAG_SEQUENTIAL_SCAN等。
7. hTemplateFile:用于指定一个文件句柄,以及与新文件共享属性的文件句柄。通常为NULL。
返回值:
如果函数调用成功,则返回一个指向已创建或打开的文件或设备的句柄。如果函数调用失败,则返回INVALID_HANDLE_VALUE。
使用CreateFile函数可以创建或打开各种文件和设备,包括磁盘文件、串口、打印机等。该函数具有灵活的参数选项,可以根据需要设置访问权限、共享方式、创建方式和文件属性。在创建或打开文件后,可以使用返回的句柄进行读取、写入和关闭等操作。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341