C プログラミングでファイルのサイズを確認する方法

C Puroguramingudefairunosaizuwo Que Rensuru Fang Fa



C プログラミングは初めてで、ファイルのサイズを調べる方法を探していますか?他には行かないでください!このガイドでは、C プログラミングでファイルのサイズを見つけるプロセスを学習します。ファイル内のデータを保持するために使用されるバイト数は、ファイルのサイズと呼ばれます。ファイル サイズを知ることで、コピー、読み取り、書き込みなどのさまざまなファイル処理操作を実行できます。

このチュートリアルで説明されている段階的なガイドラインと簡単なコード例を通じて、ファイルのサイズをすぐに見つけることができます。







C プログラミングでファイルのサイズを調べる

C でファイルのサイズを確認するには、以下に示すさまざまな方法があります。



1: stat() 関数の使用

C では、ファイルのサイズを調べる最も簡単な方法は、 統計() システムコール関数。の 統計() 関数はファイルのステータス情報を取得し、それを構造体に保存します。この構造体のメンバーの 1 つは、 st_size 、ファイルのサイズをバイト単位で示します。この方法では、ファイル ポインターを手動で移動する必要がなくなり、使いやすくなり、エラーが発生しにくくなります。



#include
#include

整数メイン ( )
{
構造体 ステータス セント;
長さ サイズ ;
もしも ( ステータス ( 「C_ファイル.txt」 & セント ) == 0 )
{
サイズ = st.st_size;
プリントフ ( 「ファイルのサイズは %ld バイトです。 \n サイズ ) ;
}
戻る 0 ;
}


このコードは、というファイルのサイズを取得します。 C_ファイル.txt を使用して 統計() からのメソッド 図書館。の st_size struct stat の要素。この関数はファイルに関する情報を保持し、ファイル サイズを確認できるようにします。ファイルのサイズは可変サイズに保たれ、その後 printf() メッセージとともにサイズをコンソールに出力するために使用されます。アクセスを試みる前に、 st_size プロパティの場合、if ステートメントは、 統計() 関数呼び出しが成功しました。コードは、正常に実行されたことを示す 0 を返します。





出力


2: fstat() 関数の使用

同様の別の関数 統計() それは fstat() 関数、これは以下と同等です 統計() ただし、ファイル名ではなく開いているファイルに対して機能します。の fstat() 関数は、 で記述された開いているファイルに関する情報を取得します。 ファイル記述子 それに渡されました。開いているファイルへの参照は整数で表されます。 ファイル記述子 。同様に stat()、 fstat() 提供されたファイルに関するステータス情報 (バイト単位のサイズなど) を返します。



#include
#include
#include

整数メイン ( ) {
int fd;
構造体 ステータス セント;
fd = オープン ( 「C_ファイル.txt」 、O_RDONLY ) ;
もしも ( ( FD、 & セント ) == - 1 ) {
プリントフ ( 「ファイル情報の取得中にエラーが発生しました。 \n ) ;
戻る 1 ;
}
プリントフ ( 「ファイルのサイズは %ld バイトです。 \n 、st.st_size ) ;
近い ( fd ) ;
戻る 0 ;
}


上記のコードでは、この例では最初にファイルが開かれます。 開ける() ファイル名と O_RDONLY ファイルを読み取り専用モードで開くオプション。あ ファイル記述子 (fd) 関数によって返されます。その後、私たちは、 fstat() ファイルに関する情報を取得するメソッド。それをポインタとして送信します。 セント 構造体を 2 番目のパラメータとして、ファイル記述子を最初の引数として指定します。の セント 構造体は、この関数がファイルを取得した後にその情報を保持する場所です。

ファイルのサイズ (バイト単位)。 st_size のメンバー セント 構造は、使用中にエラーがなかった場合に出力されます。 fstat() 関数。それ以外の場合は、エラー メッセージが出力されます。

出力


3: fseek() 関数と ftell() 関数の使用

C プログラミングでファイルのサイズを確認するもう 1 つの方法は、 fseek() ftell() 機能。の ftell() メソッドはファイル ポインタの現在位置を返しますが、 fseek() 関数はファイル ポインタをファイル内の指定された場所に移動します。ファイルのバイト単位のサイズは、次のコマンドを使用して確認できます。 ftell() 使用後に現在位置を取得する機能 fseek() ファイルポインタをファイルの末尾に再配置する関数。

#include
#include

整数メイン ( )
{
ファイル * FP;
長さ サイズ ;

fp = fopen ( 「C_ファイル.txt」 「rb」 ) ;
fseek ( FP、0L、SEEK_END ) ;
サイズ = フテル ( FP ) ;
f閉じる ( FP ) ;
プリントフ ( 「ファイルのサイズ = %ld バイト。 \n サイズ ) ;

戻る 0 ;
}


上記のコードでは、 fopen() メソッドを使用すると、アプリケーションは最初に C_ファイル.txt バイナリモードで。の fseek() 関数は次に、 SEEK_END ファイルポインタをファイルの末尾に再配置するオプション。ファイルの現在の場所 (バイト単位のサイズに対応) は、次のコマンドを使用して見つけることができます。 ftell() 関数。コードは次に、 fclose() ファイルのサイズをコンソールに出力した後にファイルを閉じるメソッド。

出力


4: filelength() 関数の使用

次の方法は、ファイル管理ライブラリを使用する方法です。このライブラリには、ファイルを取得する関数など、多くのファイル操作関数が用意されています。 ファイルのサイズ 。たとえば、関数 ファイル長() ファイル名を指定すると、ファイルの長さをバイト単位で返します。この関数にはヘッダー ファイルが必要です

他にも機能がありまして、 _filelengthi64(), 4 GB を超えるファイルの場合、ファイルの長さをバイト単位で返します。 2 つの関数の違いは、関数が処理できるバイト数を示す戻り値の型です。

#include
#include

整数メイン ( )
{
長さ サイズ ;
チャー * fname = 「C_ファイル.txt」 ;
サイズ = ファイルの長さ ( ファイルノ ( フォーペン ( ファンネーム、 「rb」 ) ) ) ;
プリントフ ( 「ファイルのサイズ = %ld バイト。 \n サイズ ) ;

戻る 0 ;
}


ファイルのサイズ C_ファイル.txt Windows ファイル管理ライブラリを使用して、このコードによってバイト単位で取得されます。開かれたファイルのファイル記述子が提供されると、メソッドは ファイル長() ファイルの長さをバイト単位で返します。

fopen() このコードでは、ファイルを読み取り専用バイナリ モードで開きます。 ファイル番号() 開かれたファイルのファイル記述子を返します。それから、 printf() ファイルサイズを出力するために使用されます。その後、関数は正常に実行されたことを示す 0 を返します。

出力


結論

を見つけるにはいくつかの方法があります C でのファイルのサイズ (バイト単位) 、それぞれに独自の長所と短所があります。上記のチュートリアルでは 4 つの異なる方法について説明しています。 統計() 関数、 fstat() 関数、 fseek() ftell() 機能と、 ファイル長() 関数。これらの機能を理解すると、ユーザーがシステム上のファイルのサイズを見つけるのに役立ちます。