温馨提示×

CreateFile函数详解(确实很详细)

小云
266
2023-09-15 07:56:34
栏目: 编程语言

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等。

  1. dwShareMode:指定其他进程对文件或设备的访问方式。可以是以下常量之一:
  • FILE_SHARE_READ:其他进程可读取文件。

  • FILE_SHARE_WRITE:其他进程可写入文件。

  • FILE_SHARE_DELETE:其他进程可删除文件。

  • 0:禁止其他进程访问文件。

  1. lpSecurityAttributes:指定文件或设备的安全属性。如果为NULL,则使用默认安全属性。

  2. dwCreationDisposition:指定文件或设备的创建方式。可以是以下值之一:

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

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

  • OPEN_EXISTING:打开已存在的文件,如果文件不存在则打开失败。

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

  • TRUNCATE_EXISTING:截断已存在的文件,文件大小为0。

  1. 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等。

  1. hTemplateFile:用于指定一个文件句柄,以及与新文件共享属性的文件句柄。通常为NULL。

返回值:

如果函数调用成功,则返回一个指向已创建或打开的文件或设备的句柄。如果函数调用失败,则返回INVALID_HANDLE_VALUE。

使用CreateFile函数可以创建或打开各种文件和设备,包括磁盘文件、串口、打印机等。该函数具有灵活的参数选项,可以根据需要设置访问权限、共享方式、创建方式和文件属性。在创建或打开文件后,可以使用返回的句柄进行读取、写入和关闭等操作。

0