ファイルのバイト数を数えるCプログラム

概要

  • 引数に指定したファイルの中身が何バイトあるかをカウントするCのプログラム
  • ファイルがバイナリでもテキストでもOK

プログラム

#include<stdlib.h>
#include<stdio.h>

int main(int argc,char *argv[])
{
    FILE *fp;
    unsigned bite = 0;

    if ( (fp = fopen(argv[1],"rb")) == NULL)
    {
        printf("ファイルを開けません\n");
        exit(1);
    }

    while(! feof(fp))
    {
        fgetc(fp);
        if(!feof(fp)) bite++;
    }

    printf("ファイルの内容は %u バイト\n",bite);

    return 0;
}

使用例

ファイルの中身を確認

$ cat hoge.txt
hoge 

実行

$ ./a.out hoge.txt
ファイルの中身は5バイト

4文字プラス改行文字?で5バイトみたいです

確認

ファイルのメモリ上のスペース数を調べるlinuxコマンド du を使う
-bオプションで単位はバイトになる

$ du -b hoge.txt
5     hoge.txt

合ってるみたいですね

もちろん

使えるならduを使ったほうがいいですね。