日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql函数封装_Mysql对文件操作的封装

發布時間:2024/4/14 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql函数封装_Mysql对文件操作的封装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在查看Mysql對文件的操作中發現,它在不同的操作系統上對文件的操作,除了使用標準C運行庫函數,包括open、close、seek等,在Win32下的文件和目錄操作函數使用了CreatFile、CloseHandl、SetFilePointer等,不明白為什么對文件的操作要封裝出兩套函數。

查看了相關資料,其實使用API和標準庫函數都可以生成文本文件和二進制文件,在這點上沒有區別。同read()對應的是ReadFile,同write()對應的是WriteFile,同seek()對應的是SetFilePointer,同close對應的是CloseHandle。這兩套函數都可以使用。但是Win

32系統把文件的概念進行了擴展。無論是文件、通信設備、命名管道、郵件槽、磁盤、還是控制臺,都是用API函數CreateFile來打開或創建的。該函數的聲明為:

HANDLE

CreateFile(

LPCTSTR lpFileName, // 文件名

DWORD dwDesiredAccess, // 訪問模式

DWORD dwShareMode, // 共享模式

LPSECURITY_ATTRIBUTES lpSecurityAttributes,

// 通常為NULL

DWORD dwCreationDistribution, // 創建方式

DWORD

dwFlagsAndAttributes, // 文件屬性和標志

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

);

如果調用成功,那么該函數返回文件的句柄,如果調用失敗,則函數返回INVALID_HANDLE_VALUE。

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

[@more@]

來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/9650775/viewspace-920832/,如需轉載,請注明出處,否則將追究法律責任。

總結

以上是生活随笔為你收集整理的mysql函数封装_Mysql对文件操作的封装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。