Createfile详细用法
时间: 2024-09-06 08:02:06 浏览: 14
CreateFile是Windows API中的一个函数,用于在Windows操作系统下创建和打开文件、管道、邮槽、通信服务、控制台缓冲区以及设备等。该函数的声明如下:
```c
HANDLE CreateFile(
LPCSTR lpFileName, // 文件名
DWORD dwDesiredAccess, // 请求的访问方式
DWORD dwShareMode, // 文件共享模式
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全属性
DWORD dwCreationDisposition, // 文件创建方式
DWORD dwFlagsAndAttributes, // 文件属性和标志
HANDLE hTemplateFile // 模板文件
);
```
参数解释:
1. `lpFileName`:要创建或打开的文件名的字符串。
2. `dwDesiredAccess`:文件的访问权限,可以是读、写、读写等。
3. `dwShareMode`:文件的共享模式,决定文件如何被共享访问。
4. `lpSecurityAttributes`:指向一个SECURITY_ATTRIBUTES结构,该结构决定返回的句柄是否可以被子进程继承。如果设置为NULL,则句柄不能继承。
5. `dwCreationDisposition`:决定如果文件不存在时是否创建文件,以及如果文件存在时的操作。
6. `dwFlagsAndAttributes`:指定文件的属性和标志,如只读、隐藏、系统等。
7. `hTemplateFile`:如果在`dwCreationDisposition`中指定了`CREATE_ALWAYS`或`OPEN_ALWAYS`,此参数可以指定一个模板文件的句柄,新文件将采用该模板文件的属性。
返回值:如果函数成功,返回值是一个文件或设备的句柄。如果函数失败,返回值是`INVALID_HANDLE_VALUE`。
示例用法:
```c
HANDLE hFile = CreateFile("example.txt", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
// 错误处理
}
```
在这个例子中,尝试创建(如果不存在)或打开(如果已存在)一个名为"example.txt"的文件,请求读写权限,不允许共享访问,不设置安全属性,创建文件时不管文件是否存在,且文件属性设置为普通。