揮発性のメモ2

知識をメモ書きしておく

ファイルからの入力に標準入力を使う

./program input.txt

ファイルからデータを読み込むプログラムに、標準入力からのデータを読み込ませるには、/dev/stdin を使う

cat input.txt | ./program /dev/stdin

コンソールからの直接入力はできない

./program /dev/stdin

「ファイルをオープンしてread関数で一気に全部読む」という作りのプログラムだった場合、正常に動作しない。
bashはラインバッファリングするため、「一気に全部読む」つもりでも最初の1行だけ読んで終わってしまう。


完全バッファリングさせてから読ませたいので、バッファリングするプログラム*1をまず先に通すようにする

perl -e 'while(<>){$t.=$_};print $t' | ./program /dev/stdin

*1:そういう都合のいいプログラムが無かったのでperlで書いた