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); //關(guān)閉文件 fclose(filep); returnlen; }
使用C標準庫獲取文件長度的測試結(jié)果如下圖所示:

Snipaste_2023-09-23_10-00-18
使用Linux的系統(tǒng)調(diào)用獲取文件長度
在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; }
審核編輯:劉清
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
C語言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145569 -
Linux操作系統(tǒng)
+關(guān)注
關(guān)注
0文章
54瀏覽量
11789
原文標題:C語言-獲取文件長度
文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
STM32操作矩陣鍵盤的兩種方法
目錄STM32操作矩陣鍵盤的兩種方法——掃描和中斷一、矩陣鍵盤的結(jié)構(gòu)和原理二、掃描式矩陣鍵盤的原理和實現(xiàn)三、中斷式矩陣鍵盤的原理和實現(xiàn)四、兩種方案優(yōu)劣STM32操作矩陣鍵盤的兩種方法——掃描和中斷
發(fā)表于 08-12 06:33
關(guān)斷檢流放大器的兩種方法
摘要:本應(yīng)用筆記介紹了兩種關(guān)斷高邊電流檢測器的方法,兩種方法都可以在下一代便攜式多媒體設(shè)備中用于電源管理。從而使系統(tǒng)在保證用戶功能需求的前提下有效延長電池的使
發(fā)表于 05-07 08:48
?23次下載
AODV協(xié)議中解決斷鏈問題的兩種方法
AODV協(xié)議中解決斷鏈問題的兩種方法
2.1 備用路由方法由于常規(guī)路由協(xié)議維護完整的路由表,能得知網(wǎng)絡(luò)中的拓撲情況,很容易
發(fā)表于 03-01 17:31
?1411次閱讀
使用jdbc連接上oracle的兩種方法
本文主要介紹了使用jdbc連接上oracle的兩種方法:1、 使用thin連接,2、 使用oci連接(Oracle Call Interface)
發(fā)表于 02-06 10:43
?2074次閱讀
單片機C語言編程中定時器初值計算的兩種方法
單片機C語言編程中,定時器的初值對于初學(xué)者真的是比較不好計算,因此總結(jié)了以下幾種方法。
51單片機的兩種方法點亮LED的C語言程序免費下載
本文檔的主要內(nèi)容詳細介紹的是使用51單片機的兩種方法總線操作和位操作點亮LED的C語言程序免費下載。
發(fā)表于 08-19 17:31
?1次下載
C語言訪問MCU寄存器的兩種方式
單片機的特殊功能寄存器SFR,是SRAM地址已經(jīng)確定的SRAM單元,在C語言環(huán)境下對其訪問歸納起來有兩種方法。
發(fā)表于 04-11 06:01
?10次下載
51單片機控制NandFlash讀寫的兩種方法
51單片機控制NandFlash讀寫的兩種方法(c語言嵌入式開發(fā)視頻)-該文檔為51單片機控制NandFlash讀寫的兩種方法總結(jié)文檔,是一份很不錯的參考資料,具有較高參考價值,感興趣
發(fā)表于 07-30 17:01
?23次下載
STM32操作矩陣鍵盤的兩種方法——掃描和中斷
目錄STM32操作矩陣鍵盤的兩種方法——掃描和中斷一、矩陣鍵盤的結(jié)構(gòu)和原理二、掃描式矩陣鍵盤的原理和實現(xiàn)三、中斷式矩陣鍵盤的原理和實現(xiàn)四、兩種方案優(yōu)劣STM32操作矩陣鍵盤的兩種方法——掃描和中斷
發(fā)表于 11-26 13:36
?37次下載
簡述安裝打印機驅(qū)動的兩種方法
安裝打印機驅(qū)動通常有兩種方法,一種是直接使用驅(qū)動文件自帶的安裝程序自動安裝,而另一種方法就是我們自己手動進行安裝。兩種方法各有利弊,日常工作中可以根據(jù)實際情況來選擇使用哪
圖騰柱TCM之兩相變頻錯相的兩種方法
目前而言,TCM的錯相方法有兩種:開環(huán)180deg固定錯相,以及閉環(huán)實時調(diào)節(jié)錯相;在我們的代碼中,我們同時采用了這兩種方法。
C語言獲取文件長度的兩種方法
評論