این تابع یک API ویندوز میباشد و برای ساخت یا باز کردن یک فایل یا یک جریان ورودی خروجی برای یک وسیله میباشد .
این تابع در ویندز XP و Server 2003 بعد از آنها قابل استفاده میباشد و در Kernel32.dll موجود است .
در حالت یونی کد از CreateFileW و در حالت اسکی از CreateFileA نیز استفاده میشود
HANDLE WINAPI CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile );
این تابع یک handle را باز میگرداند که به وسیله آن میتوان به فایل ها و دایرکتوری ها و منابع ارتباطی و pipe و ... دسترسی داشت .
ما در این بخش مثالی از ساخت یک فایل ساده میزنیم و بقیه کاربرد های آن را در بخش های جداگانه ای و بصورت فرعی آموزش میدهیم .
توضیح مختصری پیرامون آرگمان ها :
lpFilename :
نام فایل
dwDesiredAccess :
نوع دسترسی میباشد ، خواندن ، نوشتن ...
انواع مختلف این آرگمان به شرح زیر میباشد
GENERIC_READ
GENERIC_WRITE
GENERIC_EXECUTE
GENERIC_ALL
برنامه نمونه :
#include <iostream>
#include <Windows.h>
int main ()
{
HANDLE myfile = CreateFile(TEXT("D:\\file.txt"),
GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
if (myfile == INVALID_HANDLE_VALUE)
{
std::cout << "file not create ... \n";
}
else
{
std::cout << "file create ... \n";
DWORD bytes;
WriteFile(myfile, "Hello", sizeof("Hello"), &bytes, NULL);
CloseHandle(myfile);
}
system("pause");
return 0;
}