auの日記

プログラミング初心者の日記。(auはハンドルネームです)

C言語でtest.txtをプログラム上で開かずに出力する

auです。
今回はファイルをプログラム上では開かずに出力してみます。
ファイルをプログラム上で開かないとは

FILE *fp;
fopen
fclose

を使わないということです。
どうするのかというと、"catコマンド"というコマンドを使います。
catコマンドはLinuxに上で使うコマンドで、ファイルの中身を見ることができます。
"cat ファイル名.拡張子(.cや.txt)"とターミナル上で入力すると

#include <stdio.h>

int main(void) {
    char ch[20];

    fread(ch, sizeof(char), 5, stdin);
    printf("%s\n", ch);

    return 0;
}

とターミナル上にでてきます。
c言語に限らず、メモ帳などの.txtの中身も見ることができました。

Hello World! My name is au.

本題に入ります。
上のコードとcatコマンドをパイプ「|」を用いることで標準入力を次のプログラムに渡すことができます。
"cat test.txt | ./a.out"と入力すると、test.txtの中身を./a.outに移すことができます。この際、プログラム上のfread関数の通りに動くので、test.txtの中身の5バイト分だけが出力されるはずです。

Hello