在C 中確定檔案大小:一種可靠且可移植的方法
在C 中,取得檔案大小是程式設計中經常遇到的關鍵操作任務。為了確定實現這一目標的最合適方法,必須考慮可移植性、可靠性和程式碼簡單性等因素。
一種廣泛採用的方法是利用 C 標準函式庫的 ifstream 類別。透過以二進位模式開啟檔案並指定 ate 標誌,輸入流將查找檔案結尾。隨後,tellg() 成員函數可用於檢索檔案中的目前位置,從而有效地提供檔案的大小。
程式碼範例:
#include <fstream> std::ifstream::pos_type filesize(const char* filename) { std::ifstream in(filename, std::ifstream::ate | std::ifstream::binary); return in.tellg(); }
然而,值得注意的是,這種方法有一個潛在的警告。 tellg() 在某些平台上並不總是準確報告文件的大小。為了獲得更強大的解決方案,可能需要替代方法,例如在以二進位模式開啟檔案之前使用eekg()和tellg()來尋找檔案結尾。
提供的程式碼片段有效地計算檔案的大小是基於檔案可以開啟和存取的假設。應在生產級應用程式中實現適當的錯誤處理機制,以解決文件開啟或讀取期間潛在的異常。
以上是如何在 C 中可靠地確定檔案大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!