ホームページ >バックエンド開発 >C++ >C でファイル サイズを確実に判断するにはどうすればよいですか?

C でファイル サイズを確実に判断するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-21 07:46:10305ブラウズ

How to Reliably Determine File Size in C  ?

C でのファイル サイズの決定 : 信頼性が高く移植可能なアプローチ

C では、ファイル サイズの取得はプログラミングでよく遭遇する重要な操作ですタスク。これを実現するための最適な方法を特定するには、移植性、信頼性、コードの単純さなどの要素を考慮することが不可欠です。

広く採用されているアプローチの 1 つは、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() は、特定のプラットフォームではファイルのサイズを常に正確に報告するとは限りません。より堅牢なソリューションを実現するには、バイナリ モードでファイルを開く前に seekg() や Tellg() を使用してファイルの最後までシークするなどの代替方法が必要になる場合があります。

提供されているコード スニペットは、効率的に計算を行います。ファイルのサイズは、ファイルを開いてアクセスできるという前提に基づいています。ファイルを開いたり読み取ったりする際の潜在的な例外を考慮して、実稼働グレードのアプリケーションに適切なエラー処理メカニズムを実装する必要があります。

以上がC でファイル サイズを確実に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。