CreateFile函數(shù)是Windows操作系統(tǒng)中用于創(chuàng)建或打開一個文件或設(shè)備的函數(shù)。下面是對CreateFile函數(shù)的詳細(xì)解釋:
函數(shù)原型:
HANDLE CreateFile(
LPCSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
參數(shù)解釋:
lpFileName:要創(chuàng)建或打開的文件或設(shè)備的名稱??梢允且粋€字符串,也可以是一個文件路徑。
dwDesiredAccess:指定要對文件或設(shè)備進(jìn)行的訪問權(quán)限??梢允且韵鲁A恐唬?/p>
GENERIC_READ:可讀取文件。
GENERIC_WRITE:可寫入文件。
GENERIC_EXECUTE:可執(zhí)行文件。
GENERIC_ALL:可讀取、寫入和執(zhí)行文件。
其他專用權(quán)限常量,如FILE_READ_DATA、FILE_WRITE_DATA等。
FILE_SHARE_READ:其他進(jìn)程可讀取文件。
FILE_SHARE_WRITE:其他進(jìn)程可寫入文件。
FILE_SHARE_DELETE:其他進(jìn)程可刪除文件。
0:禁止其他進(jìn)程訪問文件。
lpSecurityAttributes:指定文件或設(shè)備的安全屬性。如果為NULL,則使用默認(rèn)安全屬性。
dwCreationDisposition:指定文件或設(shè)備的創(chuàng)建方式??梢允且韵轮抵唬?/p>
CREATE_NEW:創(chuàng)建新文件,如果文件已存在則創(chuàng)建失敗。
CREATE_ALWAYS:創(chuàng)建新文件,如果文件已存在則覆蓋。
OPEN_EXISTING:打開已存在的文件,如果文件不存在則打開失敗。
OPEN_ALWAYS:打開已存在的文件,如果文件不存在則創(chuàng)建新文件。
TRUNCATE_EXISTING:截斷已存在的文件,文件大小為0。
FILE_ATTRIBUTE_NORMAL:普通文件屬性。
FILE_FLAG_WRITE_THROUGH:將數(shù)據(jù)寫入文件后立即將其傳遞給磁盤,而不是寫入磁盤緩存。
FILE_FLAG_OVERLAPPED:啟用異步I/O。
FILE_FLAG_DELETE_ON_CLOSE:關(guān)閉文件時刪除文件。
其他文件屬性和標(biāo)志常量,如FILE_ATTRIBUTE_HIDDEN、FILE_FLAG_SEQUENTIAL_SCAN等。
返回值:
如果函數(shù)調(diào)用成功,則返回一個指向已創(chuàng)建或打開的文件或設(shè)備的句柄。如果函數(shù)調(diào)用失敗,則返回INVALID_HANDLE_VALUE。
使用CreateFile函數(shù)可以創(chuàng)建或打開各種文件和設(shè)備,包括磁盤文件、串口、打印機等。該函數(shù)具有靈活的參數(shù)選項,可以根據(jù)需要設(shè)置訪問權(quán)限、共享方式、創(chuàng)建方式和文件屬性。在創(chuàng)建或打開文件后,可以使用返回的句柄進(jìn)行讀取、寫入和關(guān)閉等操作。