CreateFile()
时间: 2024-05-07 11:21:34 浏览: 108
Create File
`CreateFile()` 是 Windows 操作系统提供的一个函数,用于创建、打开或重写文件、设备或管道等。其函数原型如下:
```c++
HANDLE CreateFile(
LPCWSTR lpFileName, // 文件名或设备名
DWORD dwDesiredAccess, // 访问权限
DWORD dwShareMode, // 共享模式
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全属性
DWORD dwCreationDisposition, // 文件的创建方式
DWORD dwFlagsAndAttributes, // 文件属性和标志
HANDLE hTemplateFile // 句柄模板文件
);
```
其中,常用的参数含义如下:
- `lpFileName`:文件名或设备名的字符串指针。如果是文件名,则应包括完整路径,可使用单个反斜杠( \)或双反斜杠( \\)进行分隔。如果创建的是设备或管道,则必须在文件名前加上 `\\.\`。
- `dwDesiredAccess`:访问权限,可以是以下值之一:
- `GENERIC_READ`:读取访问权限。
- `GENERIC_WRITE`:写入访问权限。
- `GENERIC_EXECUTE`:执行访问权限。
- `GENERIC_ALL`:允许所有访问权限。
- `dwShareMode`:共享模式,可以是以下值之一:
- `0`:不共享。
- `FILE_SHARE_READ`:共享读取权限。
- `FILE_SHARE_WRITE`:共享写入权限。
- `FILE_SHARE_DELETE`:共享删除权限。
- `dwCreationDisposition`:文件的创建方式,可以是以下值之一:
- `CREATE_NEW`:创建新文件,如果文件已存在则失败。
- `CREATE_ALWAYS`:创建新文件,如果文件已存在则覆盖。
- `OPEN_EXISTING`:打开已存在的文件,如果文件不存在则失败。
- `OPEN_ALWAYS`:打开已存在的文件,如果文件不存在则创建。
- `TRUNCATE_EXISTING`:截断已存在的文件,文件长度变为 0。
- `dwFlagsAndAttributes`:文件属性和标志,可以是以下值之一或者它们的组合:
- `FILE_ATTRIBUTE_ARCHIVE`:存档属性。
- `FILE_ATTRIBUTE_HIDDEN`:隐藏属性。
- `FILE_ATTRIBUTE_NORMAL`:普通属性。
- `FILE_ATTRIBUTE_READONLY`:只读属性。
- `FILE_ATTRIBUTE_TEMPORARY`:临时属性。
- `FILE_FLAG_DELETE_ON_CLOSE`:关闭文件时自动删除文件。
- `FILE_FLAG_NO_BUFFERING`:禁止缓存文件。
- `FILE_FLAG_RANDOM_ACCESS`:随机访问文件。
- `FILE_FLAG_SEQUENTIAL_SCAN`:顺序访问文件。
- `FILE_FLAG_WRITE_THROUGH`:直接写入文件。
- `hTemplateFile`:句柄模板文件,用于指定新文件的属性。
`CreateFile()` 函数创建并返回一个 `HANDLE` 类型的句柄,用于后续对文件的读写操作。需要注意的是,在使用完文件之后,应调用 `CloseHandle()` 函数关闭文件句柄,以释放系统资源。
阅读全文