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

2021-08-26 00:26:14 字數 1200 閱讀 1976

在linux下獲取乙個指定檔案大小(位元組為單位)的**。查了一下發現是使用系統呼叫stat來實現,那麼如何使用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. 

**如下:/*

*/#include 

#include 

#include 

/*函式名:getfilesize(char * strfilename) 

功能:獲取指定檔案的大小

引數:strfilename (char *):檔名

返回值:

size (int):檔案大小

*/int getfilesize(char * strfilename)   

/*函式名:getfilesizesystemcall(char * strfilename)   

功能:獲取指定檔案的大小

引數:strfilename (char *):檔名

返回值:

size (int):檔案大小

*/int getfilesizesystemcall(char * strfilename)   

int main()  

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

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

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

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

C語言獲取檔案的大小

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