微軟提供了強大的檔案讀寫(檔案i/o)操作的程式設計介面,我們可以通過呼叫api函式的方式來實現檔案的讀寫。一般情況下,檔案的讀寫過程如圖所示:
handle createfile(
lpctstr lpfilename,//指向檔名的指標
dword dwdesiredaccess,//訪問模式(讀/寫)
dword dwsharemode,//共享模式
lpsecurity_attributes lpsecurityattributes,//指向安全屬性的指標
dword dwcreationdisposition,//如何建立
dword dwflagsandattributes,//檔案屬性
handle htemplatefile//用於複製檔案控制代碼
);
如果該函式呼叫成功,則返回檔案控制代碼。否則返回invalid_handle_value。
在成功呼叫createfile建立檔案控制代碼之後,就返回所開啟或建立的檔案的控制代碼,可呼叫writefile函式或者readfile函式來讀取檔案。
bool writerfile(
handle hfile,//檔案控制代碼
lpcvoid lpbuffer,//資料緩衝區指標
dword nnumberofbytestowrite,//要寫入的位元組數
lpdword lpnumberofbyteswritten,//用於儲存實際寫入位元組數的儲存區域的指標
);bool readfile(
handle hfile,//檔案控制代碼
lpcvoid lpbuffer,//資料緩衝區指標
dword nnumberofbytestoread,//要讀取的位元組數
lpdword lpnumberofbytesread,//指向儲存實際讀取位元組數的儲存區域的指標
);
如果讀取或寫入操作成功,函式就會返回true。在完成檔案的讀寫操作後還需呼叫handle函式關閉檔案的控制代碼,以便其他程式對檔案進行操作。
#include
#include
#include
int main(int argc, char* argv)
//呼叫setfilepointer函式調整檔案指標位置,移動到檔案末尾
if (setfilepointer(hfile, 0, null, file_end) == -1)
char buff[256] = "配置資訊";
dword dwwrite;
//把buff中的內容寫入到檔案末尾
if(!writefile(hfile, &buff, strlen(buff), &dwwrite, null))
printf("往 %s 中寫入資料成功\n",argv[1]);
closehandle(hfile);
return
0;}
其中setfilepointer函式的作用是設定檔案指標的位置。當乙個檔案被開啟時,系統會維護乙個檔案指標,指向檔案的下乙個讀寫操作的位置,所以隨著檔案的讀寫,檔案指標的位置也會隨之移動。
我想要更好更遠的月亮想要未知的瘋狂
想要聲色的張揚
Linux 環境程式設計之檔案I O 檔案讀寫
函式介面 includessize t read int fd,void buf,size t nbytes ssize t write int fd,const void buf,size t nbytes read使用 write使用 測試 include include include inc...
檔案操作 讀寫檔案
對檔案的讀寫操作應該是最重要的檔案操作,system.io命名空間提供了諸多檔案讀寫操作類,對檔案內容進行操作常見有3種方式 文字模式 二進位制模式以及非同步模式。1 文字模式 streamreader 和streamwriter類提供了按文字模式讀寫資料的方法。1.1 streamreader 類...
學習Linux C程式設計之檔案操作
1 fopen函式 fopen函式類似於系統呼叫中的open函式。和open一樣,它返回檔案的識別符號,只是這裡叫做流 stream 在庫函式裡實現為乙個指向檔案的指標。如果需要對裝置的行為進行明確的控制,最好使用底層系統呼叫,因為這可以避免使用庫函式帶來的一些非預期的 如輸入 輸出緩衝。函式原型 ...