Mistra Large2为我写的用来理解句柄的代码:
#include<stdio.h>
#include<windows.h>
int main()
{
//常量指针filename,指针不能修改,指针指向的内容可以修改。
const wchar_t* filename = L"example.txt";
HANDLE hfile = CreateFile(
filename, //文件名
GENERIC_WRITE, //访问权限(写入权限)
0, //共享模式
NULL, //安全属性(默认)
CREATE_ALWAYS, //创建方式(如果文件存在则覆盖)
FILE_ATTRIBUTE_NORMAL, //文件属性(普通文件)
NULL //模板文件(无)
);
if (hfile == INVALID_HANDLE_VALUE)
{
printf("打开文件失败。错误代码:%lu\n", GetLastError());
return 1;
}
const char* data = "hello,world!";
DWORD BytesToWrite = (DWORD)strlen(data);
DWORD BytesWritten;
if (WriteFile(hfile, data, BytesToWrite, &BytesWritten, NULL))
{
printf("成功写入 % lu字节到文件\n", BytesWritten);
}
else
{
printf("写入文件失败,错误代码%lu\n", GetLastError());
}
if (CloseHandle(hfile))
{
printf("文件句柄成功关闭。\n");
}
else
{
printf("文件句柄关闭失败,错误代码:%lu\n", GetLastError());
}
return 0;
}