在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...