如何用C語言獲取檔案的大小

2021-05-24 06:46:10 字數 872 閱讀 7563

今天看專案的**過程中發現在linux下獲取乙個指定檔案大小(位元組為單位)的**。查了一下發現是使用系統呼叫stat來實現,而這引起了我的興趣,我發現在window下貌似沒有提供這樣的系統呼叫(不包括mfc),那麼如何使用c語言或c++語言來寫乙個通用的函式來獲取指定檔案大小的函式呢?

查了一下發現同c語言的檔案操作函式便可以很容易的實現這樣的功能。在自己實現的函式中使用到的函式就只有fseek和ftell。它們的說明如下:

fseek

語法:

#include int fseek( file *stream, long offset, int origin );
函式fseek()為給出的流設定位置資料. origin的值應該是下列值其中之一(在stdio.h中定義):

名稱說明

seek_set

從檔案的開始處開始搜尋

seek_cur

從當前位置開始搜尋

seek_end

從檔案的結束處開始搜尋

fseek()成功時返回0,失敗時返回非零. 你可以使用fseek()移動超過乙個檔案,但是不能在開始處之前. 使用fseek()清除關聯到流的eof標記.

ftell

語法:

#include long ftell( file *stream );
ftell()函式返回stream(流)當前的檔案位置,如果發生錯誤返回-1. 

至於stat呼叫,請詳見:http://www.360doc.com/content/11/0110/16/4559801_85509847.shtml

**如下:

執行結果如下:

如何用C語言獲取檔案的大小

今天看專案的 過程中發現在linux下獲取乙個指定檔案大小 位元組為單位 的 查了一下發現是使用系統呼叫stat來實現,而這引起了我的興趣,我發現在window下貌似沒有提供這樣的系統呼叫 不包括mfc 那麼如何使用c語言或c 語言來寫乙個通用的函式來獲取指定檔案大小的函式呢?查了一下發現同c語言的...

如何用C語言獲取檔案的大小

在linux下獲取乙個指定檔案大小 位元組為單位 的 查了一下發現是使用系統呼叫stat來實現,那麼如何使用c語言或c 語言來寫乙個通用的函式來獲取指定檔案大小的函式呢?查了一下發現同c語言的檔案操作函式便可以很容易的實現這樣的功能。在自己實現的函式中使用到的函式就只有fseek和ftell。它們的...

C語言獲取檔案的大小

一 獲取檔案系統屬性,讀取檔案大小。在c語言庫函式中有stat函式,可以獲取檔案的基本資訊,其中就有檔案大小。include 包含標頭檔案。intfile size char filename 獲取檔名為filename的檔案大小。二 通過c語言檔案操作,獲取檔案大小。以fopen開啟的檔案,通過f...