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