CreateFile函数是Windows操作系统中用于创建或打开一个文件或设备的函数。下面是对CreateFile函数的详细解释:
函数原型:
HANDLE CreateFile(
LPCSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
参数解释:
lpFileName:要创建或打开的文件或设备的名称。可以是一个字符串,也可以是一个文件路径。
dwDesiredAccess:指定要对文件或设备进行的访问权限。可以是以下常量之一:
GENERIC_READ:可读取文件。
GENERIC_WRITE:可写入文件。
GENERIC_EXECUTE:可执行文件。
GENERIC_ALL:可读取、写入和执行文件。
其他专用权限常量,如FILE_READ_DATA、FILE_WRITE_DATA等。
FILE_SHARE_READ:其他进程可读取文件。
FILE_SHARE_WRITE:其他进程可写入文件。
FILE_SHARE_DELETE:其他进程可删除文件。
0:禁止其他进程访问文件。
lpSecurityAttributes:指定文件或设备的安全属性。如果为NULL,则使用默认安全属性。
dwCreationDisposition:指定文件或设备的创建方式。可以是以下值之一:
CREATE_NEW:创建新文件,如果文件已存在则创建失败。
CREATE_ALWAYS:创建新文件,如果文件已存在则覆盖。
OPEN_EXISTING:打开已存在的文件,如果文件不存在则打开失败。
OPEN_ALWAYS:打开已存在的文件,如果文件不存在则创建新文件。
TRUNCATE_EXISTING:截断已存在的文件,文件大小为0。
FILE_ATTRIBUTE_NORMAL:普通文件属性。
FILE_FLAG_WRITE_THROUGH:将数据写入文件后立即将其传递给磁盘,而不是写入磁盘缓存。
FILE_FLAG_OVERLAPPED:启用异步I/O。
FILE_FLAG_DELETE_ON_CLOSE:关闭文件时删除文件。
其他文件属性和标志常量,如FILE_ATTRIBUTE_HIDDEN、FILE_FLAG_SEQUENTIAL_SCAN等。
返回值:
如果函数调用成功,则返回一个指向已创建或打开的文件或设备的句柄。如果函数调用失败,则返回INVALID_HANDLE_VALUE。
使用CreateFile函数可以创建或打开各种文件和设备,包括磁盘文件、串口、打印机等。该函数具有灵活的参数选项,可以根据需要设置访问权限、共享方式、创建方式和文件属性。在创建或打开文件后,可以使用返回的句柄进行读取、写入和关闭等操作。