linux獲取檔案大小

2021-06-06 15:38:10 字數 774 閱讀 9879

摘自: 

unsigned long get_file_size(const char *filename)  

fseek( fp, seek_set, seek_end );  

size=ftell(fp);  

fclose(fp);  

return size;  

}

沒有想到的是,在程式執行後發現有的檔案能正確的獲取大小,而有的檔案則不能正確的獲取到檔案大小,檢查了**,也沒有發 現有什麼不對的地方。但是在這過程中發現了乙個問題,就是能正確獲取大小的檔案都是相對比較小的檔案,而出現錯誤的都是很大的檔案。於是想到會不會是因為 標準 c檔案操作函式對超過一定大小的檔案不支援所造成的呢,於是google了一下,沒想到猜測是正確的,標準c的檔案操作函式不支援對超過2g的檔案讀取。

問題找到了,看來只有換一種方法來實現了,因為平時很少用到標準c的一些函式,所以,又只有求助於google了,在看了網上不少的參考文章之後,發現呼叫stat函式可以正確的得到超大檔案的狀態資訊(當然包括檔案大小),於是最終實現了如下的**:

unsigned long get_file_size(const char *filename)  

return (unsigned long)buf.st_size;  

}

從寫這麼乙個小小功能的函式可以看出,平時多積累一些計算機方面的知識真的是很重要的,同時對**的全面測試也是相當重要的,否則,看著很正確的**可能在某些情況下會給你帶來意想不到的麻煩。 這樣你就能學會linux獲取檔案大小的方法了。 

linux獲取檔案大小

原文 一 c語言fstat 函式 由檔案描述詞取得檔案狀態 標頭檔案 include include 定義函式 int fstat int fildes,struct stat buf 函式說明 fstat 用來將引數fildes 所指的檔案狀態,複製到引數buf 所指的結構中 struct sta...

獲取檔案大小

1 找到檔案所在的絕對路徑。系統路徑 projectpath request.getsession getservletcontext getrealpath 檔案路徑 在上傳檔案的時候,一定會有檔案相對路徑,如果不清楚,可以打斷點然後在本地找到此檔案。檔案相對路徑 filepath 絕對路徑rea...

Linux 獲取檔案大小 C函式

分類 基礎知識 2013 05 31 14 23 1766人閱讀收藏 舉報 目錄 cpp view plain copy unsigned long get file size const char path cpp view plain copy include unsigned long get...