FILE指標的使用

2021-07-02 22:10:43 字數 1742 閱讀 2120

fopen_s/_wfopen_s: 開啟檔案

fclose: 關閉檔案

fread: 讀取

fwrite: 寫入

errno_t fopen_s( 

file** pfile,

const char *filename,

const char *mode

);

pfile: file指標的位址

filename: 檔案路徑

mode: 開啟模式

"r" : 開啟乙個存在的檔案, 如果不存在,則返回失敗

"w": 開啟乙個檔案, 如果不存在則建立, 存在則清空內容

"a":  開啟乙個檔案並將檔案指標指向檔案末尾, 檔案不存在將建立檔案

"r+": 開啟乙個檔案用於讀/寫, 檔案必須存在.

"w+": 開啟乙個檔案用於寫/讀,檔案不存在則建立

"a+": 開啟乙個檔案用於讀/追加, 文 件不存在則建立.

"b": 以二進位制讀/寫檔案, 如"rb", 'wb"

返回值:

0: 成功,否則就失敗

size_t fread( 

void *buffer,

size_t size,

size_t count,

file *stream

);

buffer: 緩衝區指標

size: 緩衝區單位大小,單位為位元組

count: 最大讀取個數

stream: 檔案指標

實際最大讀取的位元組數為:size * count個

返回值:

實際讀取的個數,可能會比count小,使用feof測試是否已經到達了檔案末尾,發生錯誤, 返回0/einval

size_t fwrite(

const void *buffer,

size_t size,

size_t count,

file *stream

);

buffer: 緩衝區位址

size: 緩衝區單位大小,單位為位元組

count: 最大寫入個數

stream: 檔案指標

返回值:

實際寫入的個數,如果比count小, 可能buffer陣列越界, 發生錯誤, 返回0/einval

void testfile()

char buffer[10] = "string";

int nbytewriten = fwrite(buffer, 1, strlen(buffer), pfile);

cout << "成功寫入" << nbytewriten << "個位元組" << endl;

fclose(pfile);

char rdbuffer[10] = ;

fopen_s(&pfile, "test.txt", "rb");

if (null == pfile)

int nbyteread = fread(rdbuffer, 1, 10, pfile);

cout << "成功讀取" << nbyteread << "個位元組: ";

關於FILE指標的使用

語言檔案系統稱為流檔案 stream 正文流 正文檔案 二進位製流 二進位制檔案 一 檔案操作的一般過程 定義檔案指標 file 開啟檔案 fopen 對檔案進行讀寫 二 系統已定義的與檔案操作有關的資料結構全都在stdio.h中 1.file 結構體file fr,fp,fw file 指標作為檔...

FILE 指標的相關操作

file是在c標準庫中 stdio.h 中定義的乙個結構體,通常用指標的方式儲存在記憶體中,其內容描述了乙個檔案,或者說 流 更當。1.開啟檔案 您可以使用 fopen 函式來建立乙個新的檔案或者開啟乙個已有的檔案,這個呼叫會初始化型別 file 的乙個物件,型別 file 包含了所有用來控制流的必...

FILE指標結構,glibc

在glibc中,gdb core除錯,顯示file 指標內容 file寫出現了core檔案 1 可以看到 io write base 錯誤,因此該檔案指標file已經被破壞。所以會出現segment fault錯誤。通常 io write base 與 io read base都指向同一區域。表示當...