工作筆記1 C檔案操作

2021-09-27 02:56:55 字數 2540 閱讀 9295

fopen函式用於開啟檔案,第乙個引數是檔案的路徑,第二個引數表示已怎樣的模式開啟,最後返回file型的指標。其中,mode可有以下的形態:

「r」:以唯讀的形式開啟,檔案須存在;

「w」:以寫的方式開啟,現有檔案將會被截斷為0(刪除原檔案),若檔案不存在,自動建立檔案。

「a」:以寫模式開啟檔案,在現有檔案末尾寫入檔案,若檔案不存在,自動建立檔案。

「r+」:開啟乙個用於更新的檔案,允許讀寫,檔案須存在;

"w+":建立乙個空檔案,允許讀和寫,檔案若存在則截斷為0。

"rw":開啟乙個文字檔案,允許讀和寫。

「rb」, 「wb」, 「ab」, ab+」, 「a+b」, 「wb+」, 「w+b」, 「ab+」, 「a+b」:適用於二進位制的讀寫,使用與上同。

「wx」, 「wbx」, 「w+x」, 「wb+x」,」w+bx」:如果檔案已存在或以獨佔模式開啟檔案時,則開啟檔案失敗。

說明:在windows中,如果以文字模式開啟檔案,系統會將檔案中的換行符「\r\n」全部替換成「\n」,在檔案寫入時又會將所有的「\n」全部替換成「\r\n」;在linux中,檔案中的換行符都是以「\n」存在的,因此二進位制模式和文字模式並無區別。

file * file =

fopen

(filename,

"rb"

);

fclose()用於關閉開啟的檔案,引數file物件指標用於指向需要關閉的流,也就是fopen()開啟的檔案。如果關閉成功,,返回0,否則返回eof。

fread()函式將file指向的檔案資料流讀入buffer快取中,每次讀入的資料塊大小為elementsize,數量為elementcount。如果返回值與 elementcount引數不同,則可能發生了乙個錯誤或者到達了檔案末尾。

errno=0;

//errno是乙個系統自定義的全域性變數,用於返回錯誤碼if(

!fread

(buffer,

sizeof

(buffer),1

, file)

)

與fread()函式類似,fwrite()函式將buffer快取中的資料寫入file指標指向的流中,每次寫入的大小是elementsize,數量為elementcount。返回值表示元素的總數,該物件是乙個整型資料型別,如果該數字與 elementcount引數不同,則會顯示乙個錯誤。

fwrite

(buffer,

sizeof

(uint8)

,100

, f_target)

;//每次寫100個位元組

配置檔案是為使用者開放的檔案,使用者可以通過改變配置檔案來更改系統引數。配置檔案的型別可以是txt,cfg,ini等型別,但是windows下提供了ini配置檔案操作函式。

讀取配置檔案字串:

dword

winapi

getprivateprofilestringa

(//讀取結名

_in_opt_ lpcstr lpkeyname,

//讀取的鍵名

_in_opt_ lpcstr lpdefault,

//鍵值不存在的預設值

_out_writes_to_opt_

(nsize,

return+1

) lpstr lpreturnedstring,

//接受讀取字串的快取指標

_in_ dword nsize,

//讀取最大長度

_in_opt_ lpcstr lpfilename //ini檔名

);

在vs中,存在乙個系統巨集定義,#define getprivateprofilestring getprivateprofilestringa,因此getprivateprofilestring()函式也有相同的功能。

配置檔案讀取整數:

uint getprofileint
配置檔案寫入字串:

bool writeprivateprofilestring

(// 同上

lpctstr lpkeyname,

// 同上

lpctstr lpstring,

// 同上

lpctstr lpfilename // 要寫入的檔案的檔名

)

將src指向的記憶體資料拷貝size長度至des指向的記憶體中。

string buf=

"123"

;int buf_int=

atol

(buf.

data()

);cout<

工作筆記 小結1

如果timer定時器要每隔間隔的時間執行,實現ticker的效果,使用 func t timer reset d duration bool timer可以reset 定時器ticker 配合for迴圈為長久死迴圈定時器,開協程同時和系統休眠為定時迴圈用 package main import fm...

isos系統工作筆記1

ipif receive p if f ipreceivefilter filterdrecv return ifdata receive filterentry ifdata receive,packet fwinte ce addfwinte ce alerror securityaddinte...

xlua筆記 1 C 載入lua檔案

執行字串 最基本是直接用luaenv.dostring執行乙個字串,當然,字串得符合lua語法 比如 luaenv.dostring print hello world 完整 見xlua tutorial loadluascript bystring目錄 但這種方式並不建議,更建議下面介紹這種方法。...