fopen開啟檔案mode設定缺少 b 引發的血案

2021-08-09 06:37:10 字數 521 閱讀 6544

fopen開啟檔案mode設定缺少『b』引發的血案:

今天使用fopen,然後在呼叫fread函式,讀取的資料長度總是不對,一開始以為是讀到的檔案末尾,除錯發現沒有讀到檔案末尾,但是讀取到位元組數就是小於要讀取的位元組數,折騰了半小時發現fopen的引數不對。

錯誤**如下:

fp = fopen(filename,"r");

if(!fp)

fseek(fp, offset, seek_set);

readlen = fread(pucbuffer, sizeof(u8), lbuffersize, fp);

正確**如下:

fp = fopen(filename,"rb");

if(!fp)

fseek(fp, offset, seek_set);

readlen = fread(pucbuffer, sizeof(u8), lbuffersize, fp);

fopen函式mode引數詳解

函式功能 fopen能開啟磁碟內的檔案,使程式能對檔案進行讀寫。函式原型 file fopen const char path,const char mode 傳入引數說明 path 所要開啟的檔案和路徑 mode 開啟檔案的模式 返回值 檔案順利開啟後,指向該流的檔案指標就會被返回,若檔案開啟失敗...

檔案的開啟 fopen函式

fopen函式用來開啟乙個檔案,其呼叫的一般形式為 檔案指標名 fopen 檔名,使用檔案方式 其中,檔案指標名 必須是被說明為file 型別的指標變數 檔名 是被開啟檔案的檔名 使用檔案方式 是指檔案的型別和操作要求。檔名 是字串常量或字串陣列。例如 file fp fp file a r 其意義...

fopen開啟檔案失敗過程分析

場景說明 協助同事解決fopen開啟檔案永遠返回 1的異常情況。在解決問題的時候,先入為主的認為是 檔案路徑出現了字元轉義的問題,根本沒有想到要列印出當前無法獲取到檔案控制代碼的錯誤,是否是檔案路徑不存在。所以一開始就是將 替換為 然後替換為 還是不行。fprintf stderr,s n stre...