
例:
猫<test.txt
- ファイルの内容が
test.txt
stdinに作成/配信されたcat
後cat
、stdinで読み込まれますか?
または
- ファイル
test.txt
自体が標準入力になりますかcat
?つまり、テキストファイルのファイル記述子(fd)を0に設定するとcat
stdinが変更されるのでしょうか?test.txt
答え1
オプション番号2:標準入力をtest.txt
開きcat
、このファイルを指すように設定します(重複したファイル記述子したがって、最終実行プロセスでは0)ですcat
。
Linuxでは、以下を実行してこれを確認できます。
$ touch /tmp/foo
$ sleep 120 < /tmp/foo &
[1] 3006118
$ ls -l /proc/3006118/fd
total 0
lr-x------ 1 steve steve 64 May 4 16:11 0 -> /tmp/foo
lrwx------ 1 steve steve 64 May 4 16:11 1 -> /dev/pts/3
lrwx------ 1 steve steve 64 May 4 16:11 2 -> /dev/pts/3
プロセスの標準入力は/tmp/foo
簡単です。