CreateFile関数の使い方を教えて下さい。
CreateFile 関数は、Windows API の関数であり、ファイルまたはデバイスの作成やオープンに使用されます。以下に CreateFile 関数の使用方法の例を示します。
#include <windows.h>
int main() {
HANDLE hFile;
LPCTSTR lpFileName = "C:\\myfile.txt"; // 文件名
// 打开或创建文件
hFile = CreateFile(lpFileName, // 文件名
GENERIC_READ | GENERIC_WRITE, // 访问模式
0, // 共享模式(0表示不共享)
NULL, // 安全描述符
CREATE_ALWAYS, // 创建方式
FILE_ATTRIBUTE_NORMAL, // 文件属性
NULL); // 模板文件句柄
if (hFile == INVALID_HANDLE_VALUE) {
// 打开或创建文件失败
DWORD dwError = GetLastError();
// 处理错误
} else {
// 文件打开或创建成功
// ...
// 关闭文件
CloseHandle(hFile);
}
return 0;
}
これらの例における、CreateFile関数の最初の引数には作成または開かれるファイル名、2番目の引数にはアクセスモードが与えられます。例えば、GENERIC_READ | GENERIC_WRITEは読み書きを示します。3番目の引数には共有モードが与えられます。共有しない場合は0に設定されます。4番目の引数にはセキュリティ記述子が与えられます。NULLに設定可能です。5番目の引数には作成方法が与えられます。例えば、CREATE_ALWAYSはファイルが存在する場合でも削除して作成し直すことを示します。6番目の引数にはファイル属性が与えられます。例えば、FILE_ATTRIBUTE_NORMALは通常ファイルを示します。最後の引数にはテンプレートファイルハンドルが与えられます。NULLに設定可能です。
関数の呼び出し後に、戻り値が INVALID_HANDLE_VALUE の場合、ファイルのオープンまたは作成に失敗しており、GetLastError 関数を使用してエラーコードを取得してエラー処理を行います。戻り値が INVALID_HANDLE_VALUE 以外の場合、ファイルのオープンまたは作成に成功しており、ファイル操作を実行できます。その後、CloseHandle 関数を使用してファイルハンドルを閉じます。