IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁數(shù)據(jù)庫MYSQL → 快速掌握 Mysql數(shù)據(jù)庫對文件操作的封裝

快速掌握 Mysql數(shù)據(jù)庫對文件操作的封裝

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

快速掌握 mysql數(shù)據(jù)庫對文件操作的封裝

在查看Mysql對文件的操作中,它在不同的操作系統(tǒng)上對文件的操作,除了使用標(biāo)準(zhǔn)C運(yùn)行庫函數(shù),包括open、close、seek等,在Win32下的文件和目錄操作函數(shù)使用了CreatFile、CloseHandl、SetFilePointer等,很多人可能不明白為什么對文件的操作要封裝出兩套函數(shù)。

其實(shí)使用API和標(biāo)準(zhǔn)庫函數(shù)都可以生成文本文件和二進(jìn)制文件,在這點(diǎn)上沒有區(qū)別。同read()對應(yīng)的是ReadFile,同write()對應(yīng)的是WriteFile,同seek()對應(yīng)的是SetFilePointer,同close對應(yīng)的是CloseHandle。這兩套函數(shù)都可以使用。但是Win 32系統(tǒng)把文件的概念進(jìn)行了擴(kuò)展。無論是文件、通信設(shè)備、命名管道、郵件槽、磁盤、還是控制臺,都是用API函數(shù)CreateFile來打開或創(chuàng)建的。該函數(shù)的聲明為:

HANDLE CreateFile(

LPCTSTR lpFileName, // 文件名

Dword dwDesiredaccess, // 訪問模式

DWORD dwShareMode, // 共享模式

LPSECURITY_ATTRIBUTES lpSecurityAttributes, // 通常為NULL

DWORD dwCreationDistribution, // 創(chuàng)建方式

DWORD dwFlagsAndAttributes, // 文件屬性和標(biāo)志

HANDLE hTemplateFile // 臨時文件的句柄,通常為NULL

如果調(diào)用成功,那么該函數(shù)返回文件的句柄,如果調(diào)用失敗,則函數(shù)返回:

INVALID_HANDLE_VALUE。

在用ReadFile和WriteFile讀寫時,既可以同步執(zhí)行,也可以異步執(zhí)行。ReadFile和WriteFile函數(shù)是否為執(zhí)行異步操作是由CreateFile函數(shù)決定的。如果在調(diào)用CreateFile創(chuàng)建句柄時指定了FILE_FLAG_OVERLAPPED標(biāo)志,那么調(diào)用ReadFile和WriteFile對該句柄進(jìn)行的讀寫操作就是異步的,如果未指定異步標(biāo)志,則讀寫操作是同步的。在同步執(zhí)行時,函數(shù)直到操作完成后才返回。這意味著在同步執(zhí)行時線程會被阻塞,從而導(dǎo)致效率下降。在異步執(zhí)行時,即使操作還未完成,調(diào)用的函數(shù)也會立即返回。費(fèi)時的I/O操作在后臺進(jìn)行,這樣線程就可以干別的事情。這樣可以大大的提高效率。這一點(diǎn)是值得我們學(xué)習(xí)和借鑒的,對于我們在文件的操作方面也可以對win32系統(tǒng)進(jìn)行封裝來提高文件操作的效率。

關(guān)鍵詞標(biāo)簽:Mysql數(shù)據(jù)庫

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦MySQL常用維護(hù)管理工具MySQL常用維護(hù)管理工具Linux VPS/服務(wù)器上輕松導(dǎo)入、導(dǎo)出MySQL數(shù)據(jù)Linux VPS/服務(wù)器上輕松導(dǎo)入、導(dǎo)出MySQL數(shù)據(jù)MySQL復(fù)制的概述、安裝、故障、技巧、工具MySQL復(fù)制的概述、安裝、故障、技巧、工具

相關(guān)下載

人氣排行 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié)Mysql 1045錯誤解決辦法10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法MySQL導(dǎo)出導(dǎo)入命令的用例MySQL無法啟動、無法停止各種解決方法總結(jié)三種常用的MySQL建表語句Mysql清空表的實(shí)現(xiàn)方法