Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

ファイルディスクリプタ(ファイル記述子)と名前付きパイプをつかって標準入力を受け付ける系ツールを活かしたままにする

実際のところ

ファイルディスクリプタ(ファイル記述子)の効用

$ echo 123 > sample.txt
$ cat sample.txt
123
$ exec 3> sample.txt
$ echo 456 >&3

$ cat sample.txt
456

ファイルディスクリプタと名前付きパイプを使う

普通の名前付きパイプなら

$ mkfifo FIFO
$ echo 1234 > FIFO
$ cat FIFO
1234
$

ここで、名前付きパイプをファイルディスクリプタで装飾すると

$ exec 4> FIFO
$ echo 1234 >&4
$ echo 567 >&4

閉じない

$ cat FIFO
1234
567

sqliteのような標準入力やファイルをうけて動く系のソフトをハンドリングするのに使える……らしい