WIN32 API 檔案裝置IO操作函式解析

2021-05-25 10:37:33 字數 1305 閱讀 6314

createfile用於建立,開啟乙個檔案或者i/o裝置。常用的i/o裝置包括:檔案,檔案流,目錄,物理磁碟,卷,控制台緩衝區,磁帶驅動器,通訊資源,郵槽和管道。根據所訪問物件以及所指定訪問特性標識的不同,該函式會返回乙個用於訪問所指定物件的控制代碼。其基本語法為:

handle winapi createfile(

__in      lpctstr lpfilename,

__in      dword dwdesiredaccess,

__in      dword dwsharemode,

__in_opt  lpsecurity_attributes lpsecurityattributes,

__in      dword dwcreationdisposition,

__in      dword dwflagsandattributes,

__in_opt  handle htemplatefile

);

引數 1)lpfilename

所要開啟或建立的檔案或裝置,該函式的ansi版本中的檔名最大長度限制為max_path,但是呼叫其unicode版本則可以達到32767個寬字元。

dwdesiredaccess

訪問請求的型別,可以為generic_read,generic_write,(generic_write|generic_write),或者0。當此引數為0時,既不能讀也不能寫所請求的物件,而是可以用於查詢比如檔案,目錄或者裝置屬性的元資料而不用訪問具體的檔案或裝置。此處指定的屬性也不能與後面要求的dwsharemode引數相衝突。

dwsharemode

檔案或裝置的共享模式可以是讀,寫,讀寫,刪除,所有這些屬性或者都沒有。當然對乙個檔案或裝置屬性的訪問不被此標識所影響。dwsharemode=0表示是互斥使用,如果createfile開啟成功,別的程式只能等到當前程式關閉物件控制代碼之後才能再開啟或使用。

lpsecurityattributes

指向乙個security_attributes結構的指標,定義了檔案的安全性

dwcreationdisposition

設定當檔案或裝置已經存在或不存在時的動作。對於裝置檔案,此引數總是設定為open_existing。而對於檔案可以設定的引數由:create_always(總是新建檔案),create_new(如果已經存在則出錯,如果不存在則新建),open_always(如果檔案存在則開啟,如果檔案不存在則新建乙個檔案),open_existing(如果檔案存在則開啟,如果不存在則錯誤),truncate_existing(如果存在則清空資料,如果不存在則出錯)。

Win32 API檔案讀寫操作

1 檔案的建立和開啟 handle createfile lpctstr lpfilename,dword dwdesiredaccess,dword dwsharemode,lpsecurity attributes lpsecurityattributes,dword dwcreationdis...

win32 API實現檔案拖拽開啟

在windows中,我們開啟乙個文字檔案後,可以將另乙個文字檔案拖拽進來,從而實現開啟此檔案。那麼這個功能是怎麼實現的呢?經過一下午的實踐,現將具體 分享如下 include define id edit 1 lresult callback wndproc hwnd,uint,wparam,lpa...

掃雷程式 win32API

1 已實現功能 基本的掃雷方塊的展開,方塊周圍雷數的計算,方塊的標旗,勝負的判斷,難度的更改 2 未實現功能 控制台顯示剩餘標旗數量和當前所用時間,選單項的豐富 3 基本原理 使用一張二維int表儲存每個方格的數字資訊,其中9表示雷 將整個雷區 客戶區 按難度分割成方格,每個方格為乙個靜態控制項,用...