C語言中沒有直接獲取文件長度的接口,但是我們可以使用標準庫提供的函數(shù)來間接的獲取文件長度。這里提供兩種方法。
使用C標準庫獲取文件長度
不論你使用的是哪個操作系統(tǒng),只要該操作系統(tǒng)支持C標準庫,那么就可以通過下述代碼獲取文件長度:
#include/** *@brief獲取文件長度 * *@paramfile_name文件名(包含路徑) * *@return-1:獲取文件長度失敗其他值:文件長度 * *@version *1,2023-08-09,AilsonJack,Createdfunction */ longget_file_len(constchar*file_name) { FILE*filep; longlen; //打開文件 filep=fopen(file_name,"rb"); if(filep==NULL) { printf("fopen%sfailed! ",file_name); return-1; } //移動文件指針到文件末尾 fseek(filep,0,SEEK_END); //獲取文件長度 len=ftell(filep); //關閉文件 fclose(filep); returnlen; }
使用C標準庫獲取文件長度的測試結果如下圖所示:
Snipaste_2023-09-23_10-00-18
使用Linux的系統(tǒng)調用獲取文件長度
在Linux操作系統(tǒng)下,可以使用stat函數(shù)來獲取文件信息,其中st_size字段表示文件的長度,代碼如下所示:
#include#include /** *@brief獲取文件長度 * *@paramfile_name文件名(包含路徑) * *@return-1:獲取文件長度失敗其他值:文件長度 * *@version *1,2023-08-09,AilsonJack,Createdfunction */ longget_file_len(constchar*file_name) { structstatst; //獲取文件信息 if(stat(file_name,&st)==-1) { perror("無法獲取文件信息"); return-1; } //檢查文件類型 if(!S_ISREG(st.st_mode)) { printf("%s不是一個常規(guī)文件! ",file_name); return-1; } returnst.st_size; }
審核編輯:劉清
-
C語言
+關注
關注
180文章
7630瀏覽量
140343 -
Linux操作系統(tǒng)
+關注
關注
0文章
54瀏覽量
11342
原文標題:C語言-獲取文件長度
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
STM32操作矩陣鍵盤的兩種方法
關斷檢流放大器的兩種方法
AODV協(xié)議中解決斷鏈問題的兩種方法

使用jdbc連接上oracle的兩種方法
51單片機的兩種方法點亮LED的C語言程序免費下載

C語言訪問MCU寄存器的兩種方式

51單片機控制NandFlash讀寫的兩種方法

STM32操作矩陣鍵盤的兩種方法——掃描和中斷

簡述安裝打印機驅動的兩種方法

評論