溫馨提示×

CreateFile函數(shù)詳解(確實很詳細(xì))

小云
248
2023-09-15 07:56:34
欄目: 編程語言

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ù)解釋:

  1. lpFileName:要創(chuàng)建或打開的文件或設(shè)備的名稱??梢允且粋€字符串,也可以是一個文件路徑。

  2. 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等。

  1. dwShareMode:指定其他進(jìn)程對文件或設(shè)備的訪問方式??梢允且韵鲁A恐唬?/li>
  • FILE_SHARE_READ:其他進(jìn)程可讀取文件。

  • FILE_SHARE_WRITE:其他進(jìn)程可寫入文件。

  • FILE_SHARE_DELETE:其他進(jìn)程可刪除文件。

  • 0:禁止其他進(jìn)程訪問文件。

  1. lpSecurityAttributes:指定文件或設(shè)備的安全屬性。如果為NULL,則使用默認(rèn)安全屬性。

  2. dwCreationDisposition:指定文件或設(shè)備的創(chuàng)建方式??梢允且韵轮抵唬?/p>

  • CREATE_NEW:創(chuàng)建新文件,如果文件已存在則創(chuàng)建失敗。

  • CREATE_ALWAYS:創(chuàng)建新文件,如果文件已存在則覆蓋。

  • OPEN_EXISTING:打開已存在的文件,如果文件不存在則打開失敗。

  • OPEN_ALWAYS:打開已存在的文件,如果文件不存在則創(chuàng)建新文件。

  • TRUNCATE_EXISTING:截斷已存在的文件,文件大小為0。

  1. dwFlagsAndAttributes:指定文件或設(shè)備的屬性和標(biāo)志??梢允且韵轮抵换蚱浣M合:
  • 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等。

  1. hTemplateFile:用于指定一個文件句柄,以及與新文件共享屬性的文件句柄。通常為NULL。

返回值:

如果函數(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)閉等操作。

0