阅读量:0
CreateFile
是Windows API(应用程序接口)中的一个函数,用于在Windows操作系统中创建、打开、关闭或删除文件。这个函数为程序员提供了对文件进行基本操作的接口。
CreateFile
函数的原型如下:
HANDLE CreateFile( LPCTSTR FileName, // 文件名 DWORD DesiredAccess, // 访问模式 DWORD ShareMode, // 分享模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 安全属性 DWORD CreationDisposition, // 创建方式 DWORD FlagsAndAttributes, // 文件标志和属性 HANDLE hTemplateFile // 模板文件句柄 );
参数说明:
FileName
:要创建或打开的文件的路径名。DesiredAccess
:指定访问文件的方式。例如,只读、只写或读写等。ShareMode
:指定文件共享的方式。例如,独占共享、共享读写等。lpSecurityAttributes
:指向一个安全属性结构体的指针,用于指定文件的安全设置。如果为NULL
,则文件具有默认的安全属性。CreationDisposition
:指定是创建新文件、打开现有文件还是其他操作。例如,CREATE_ALWAYS
表示总是创建新文件,如果文件已存在则覆盖它;OPEN_EXISTING
表示只打开已存在的文件,如果不存在则返回错误。FlagsAndAttributes
:指定文件的标志和属性。例如,FILE_ATTRIBUTE_NORMAL
表示文件具有正常属性,即没有特殊属性。hTemplateFile
:指定一个模板文件的句柄,用于指定文件的创建属性。如果为NULL
,则使用默认属性创建文件。
CreateFile
函数返回一个HANDLE
类型的值,表示创建或打开的文件句柄。如果函数执行成功,则返回有效的文件句柄;否则返回INVALID_HANDLE_VALUE
。
下面是一个简单的示例代码,演示如何使用CreateFile
函数创建一个名为test.txt
的新文件:
#include <windows.h> #include <stdio.h> int main() { HANDLE hFile; DWORD dwBytesWritten; const char* fileName = "test.txt"; const char* fileContent = "Hello, World!"; // 创建文件 hFile = CreateFile( fileName, // 文件名 GENERIC_WRITE, // 访问模式(只写) 0, // 分享模式(无共享) NULL, // 安全属性(默认) CREATE_ALWAYS, // 创建方式(总是创建新文件) 0, // 文件标志和属性(默认) NULL // 模板文件句柄(无模板文件) ); if (hFile == INVALID_HANDLE_VALUE) { printf("Error creating file: %lu\n", GetLastError()); return 1; } // 写入文件内容 if (!WriteFile(hFile, fileContent, strlen(fileContent), &dwBytesWritten, NULL)) { printf("Error writing to file: %lu\n", GetLastError()); CloseHandle(hFile); return 1; } // 关闭文件句柄 CloseHandle(hFile); printf("File created successfully!\n"); return 0; }
在这个示例中,我们使用CreateFile
函数创建一个名为test.txt
的新文件,并使用WriteFile
函数将字符串Hello, World!
写入文件中。最后,我们关闭文件句柄以释放资源。