衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言獲取文件長度的兩種方法

嵌入式那些事 ? 來源:嵌入式那些事 ? 2023-10-10 16:15 ? 次閱讀

C語言中沒有直接獲取文件長度的接口,但是我們可以使用標準庫提供的函數來間接的獲取文件長度。這里提供兩種方法。

使用C標準庫獲取文件長度

不論你使用的是哪個操作系統,只要該操作系統支持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標準庫獲取文件長度的測試結果如下圖所示:

fee54b1c-6743-11ee-939d-92fbcf53809c.png

Snipaste_2023-09-23_10-00-18

使用Linux的系統調用獲取文件長度

在Linux操作系統下,可以使用stat函數來獲取文件信息,其中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不是一個常規文件!
",file_name);
return-1;
}

returnst.st_size;
}






審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137712
  • Linux操作系統

    關注

    0

    文章

    54

    瀏覽量

    11120

原文標題:C語言-獲取文件長度

文章出處:【微信號:嵌入式那些事,微信公眾號:嵌入式那些事】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux端口的開啟的兩種方法需要掌握

    Linux端口的開啟的兩種方法需要掌握
    發表于 11-28 10:05 ?1274次閱讀

    STM32操作矩陣鍵盤的兩種方法

    目錄STM32操作矩陣鍵盤的兩種方法——掃描和中斷一、矩陣鍵盤的結構和原理二、掃描式矩陣鍵盤的原理和實現三、中斷式矩陣鍵盤的原理和實現四、兩種方案優劣STM32操作矩陣鍵盤的兩種方法——掃描和中斷
    發表于 08-12 06:33

    關斷檢流放大器的兩種方法

    摘要:本應用筆記介紹了兩種關斷高邊電流檢測器的方法,兩種方法都可以在下一代便攜式多媒體設備中用于電源管理。從而使系統在保證用戶功能需求的前提下有效延長電池的使
    發表于 05-07 08:48 ?23次下載

    AODV協議中解決斷鏈問題的兩種方法

    AODV協議中解決斷鏈問題的兩種方法 2.1 備用路由方法由于常規路由協議維護完整的路由表,能得知網絡中的拓撲情況,很容易
    發表于 03-01 17:31 ?1147次閱讀
    AODV協議中解決斷鏈問題的<b class='flag-5'>兩種方法</b>

    使用jdbc連接上oracle的兩種方法

    本文主要介紹了使用jdbc連接上oracle的兩種方法:1、 使用thin連接,2、 使用oci連接(Oracle Call Interface)
    發表于 02-06 10:43 ?1737次閱讀

    單片機C語言編程中定時器初值計算的兩種方法

    單片機C語言編程中,定時器的初值對于初學者真的是比較不好計算,因此總結了以下幾種方法
    的頭像 發表于 12-30 16:59 ?1.1w次閱讀

    51單片機的兩種方法點亮LED的C語言程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機的兩種方法總線操作和位操作點亮LED的C語言程序免費下載。
    發表于 08-19 17:31 ?1次下載
    51單片機的<b class='flag-5'>兩種方法</b>點亮LED的<b class='flag-5'>C</b><b class='flag-5'>語言</b>程序免費下載

    提升家里網速的兩種方法

    總是嫌家里的網速慢,看視頻“轉圈圈”,玩游戲“時延高”,如何提升家里的網速呢?這里介紹兩種方法
    的頭像 發表于 02-19 21:10 ?1.5w次閱讀
    提升家里網速的<b class='flag-5'>兩種方法</b>

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

    單片機的特殊功能寄存器SFR,是SRAM地址已經確定的SRAM單元,在C語言環境下對其訪問歸納起來有兩種方法。
    發表于 04-11 06:01 ?10次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>訪問MCU寄存器的<b class='flag-5'>兩種</b>方式

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

    51單片機控制NandFlash讀寫的兩種方法(c語言嵌入式開發視頻)-該文檔為51單片機控制NandFlash讀寫的兩種方法總結文檔,是一份很不錯的參考資料,具有較高參考價值,感興趣
    發表于 07-30 17:01 ?22次下載
    51單片機控制NandFlash讀寫的<b class='flag-5'>兩種方法</b>

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

    目錄STM32操作矩陣鍵盤的兩種方法——掃描和中斷一、矩陣鍵盤的結構和原理二、掃描式矩陣鍵盤的原理和實現三、中斷式矩陣鍵盤的原理和實現四、兩種方案優劣STM32操作矩陣鍵盤的兩種方法——掃描和中斷
    發表于 11-26 13:36 ?36次下載
    STM32操作矩陣鍵盤的<b class='flag-5'>兩種方法</b>——掃描和中斷

    【Linux + C語言C語言獲取文件大小的方法都在這

    【Linux + C語言C語言獲取文件大小的方法
    的頭像 發表于 08-31 12:49 ?3546次閱讀
    【Linux + <b class='flag-5'>C</b><b class='flag-5'>語言</b>】<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>獲取</b><b class='flag-5'>文件</b>大小的<b class='flag-5'>方法</b>都在這

    LDO在IoT中省電的兩種方法

    LDO在IoT中省電的兩種方法
    發表于 11-04 09:50 ?0次下載
    LDO在IoT中省電的<b class='flag-5'>兩種方法</b>

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

    安裝打印機驅動通常有兩種方法,一種是直接使用驅動文件自帶的安裝程序自動安裝,而另一種方法就是我們自己手動進行安裝。兩種方法各有利弊,日常工作中可以根據實際情況來選擇使用哪
    的頭像 發表于 04-04 09:46 ?4948次閱讀
    簡述安裝打印機驅動的<b class='flag-5'>兩種方法</b>

    hex文件如何查看原c語言代碼

    是處理器可以直接執行的指令,而 C 語言代碼則是人類可讀的高級編程語言代碼。 然而,如果你想要從 .hex 文件獲取一些有用的信息或者對程
    的頭像 發表于 09-02 10:37 ?2783次閱讀
    百家乐高手和勒威| 澳门百家乐| 蓝盾百家乐的玩法技巧和规则| 威尼斯人娱乐城存取款| 六合彩报码室| 百家乐官网视频游戏官网| 澳门百家乐官网单注下| 贝博百家乐的玩法技巧和规则 | 百家乐赢利策略| 棋牌百家乐官网程序破解| 百家乐娱乐城主页| 大发888博必发| 百家乐官网赌场占多大概率| 九运2024年-2043年| 威尼斯人娱乐城可靠吗| 百家乐官网网址哪里有| 百家乐娱乐城体育| 大发888体育竞技| 7人百家乐官网桌布| 百家乐系列抢庄龙| 六合彩136| 优惠搏百家乐官网的玩法技巧和规则 | 百家乐官网真人游戏娱乐网| 百家乐路技巧| 百家乐官网节目视频| 百家乐天下第一缆| 大发足球| 百家乐官网真人娱乐场开户注册| 万宝路百家乐的玩法技巧和规则| 莎车县| 百家乐数学规律| 德州扑克发牌顺序| 百家乐官网赌场娱乐网规则 | 网上百家乐真实吗| tt娱乐城官方网站| 百家乐官网英皇娱乐场开户注册| 百家乐电影网| 百家乐官网双龙出海注码法| 乐天堂百家乐娱乐城| 百家乐官网技巧-百家乐官网开户指定代理网址 | 百家乐官网是否能赢|