はじめに
この実験では、C 言語を使って任意のファイルのサイズを求める方法を学びます。ファイルのサイズを求めるために、fseek() 関数と ftell() 関数を使います。
注:コーディングを練習し、gcc を使ってコンパイルして実行する方法を学ぶには、自分で
~/project/main.cファイルを作成する必要があります。
cd ~/project
## main.c を作成する
touch main.c
## main.c をコンパイルする
gcc main.c -o main
## main を実行する
./main
ヘッダーファイルをインクルードする
必要なヘッダーファイル stdio.h と stdlib.h をインクルードすることから始めます。
#include<stdio.h>
#include<stdlib.h>
main() 関数を作成する
次に、C プログラムのエントリーポイントである main() 関数を作成します。
int main()
{
return 0;
}
変数を定義する
次に、必要な変数を定義します。ファイルを保持するために FILE ポインタが必要です。また、ファイルを読み取る際に現在の文字を保持するために char 型の変数が必要です。最後に、ファイルのサイズを保持するために整数型の size が必要です。
FILE *fp;
char ch;
int size = 0;
ファイルを開く
次に、fopen() 関数を使ってファイルを開き、ファイルが正常に開かれたかどうかを確認します。
fp = fopen("MyFile.txt", "r");
if (fp == NULL)
{
printf("\nFile unable to open...\n");
return 1;
}
else
{
printf("\nFile opened...\n");
}
ファイルポインタを移動する
次に、fseek() 関数を使ってファイルポインタをファイルの末尾に移動します。
fseek(fp, 0, 2);
ファイルのサイズを取得する
次に、ftell() 関数を使ってファイルポインタの現在の位置を取得し、それを size 変数に格納します。
size = ftell(fp);
ファイルのサイズを表示する
最後に、printf() 関数を使ってファイルのサイズを表示します。
printf("The size of given file is: %d bytes\n", size);
ファイルを閉じる
これでファイルの操作は終わりですので、fclose() 関数を使ってファイルを閉じます。
fclose(fp);
完全なプログラムコード
任意のファイルのサイズを求める C プログラムの完全なコードは次の通りです。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char ch;
int size = 0;
fp = fopen("MyFile.txt", "r");
if (fp == NULL)
{
printf("\nFile unable to open...\n");
return 1;
}
else
{
printf("\nFile opened...\n");
}
fseek(fp, 0, 2);
size = ftell(fp);
printf("The size of given file is: %d bytes\n", size);
fclose(fp);
return 0;
}
まとめ
この実験では、C プログラミング言語で fseek() 関数と ftell() 関数を使って任意のファイルのサイズを求める方法を学びました。以下のトピックを扱いました。
- ヘッダーファイルのインクルード
main()関数の作成- 変数の定義
- ファイルのオープン
- ファイルポインタの移動
- ファイルのサイズの取得
- ファイルのサイズの表示
- ファイルのクローズ
読み書きの後は常にファイルを閉じるのが良い習慣です。



