2013-06-23 16 views
5

ディスク上のファイルを開くことなくファイル記述子と対話する方法はありますか?ディスクに書き込まずにファイル記述子3に書き込みますか?

これは最初のFD3に割り当てられているファイルがないと動作しません。

echo a >&3 
+8

それはあなたが達成しようとしているされてどのような? –

+2

'mkfifo'を使って[fifo queue](https://en.wikipedia.org/wiki/Named_pipe)を作ることができます。これはファイルシステムにエントリを作成しますが、実際のIOはメモリに格納されます。 – Kevin

答えて

12

は、あなたが何をしたいのかに依存します。あなたの余暇に文字列を書いてそれらを逆に印刷したいとします。標準入力を待っているプロセスの代替にリダイレクトするファイル記述子を設定します。

$ exec 3> >(rev) 
$ echo hello world >&3 
dlrow olleh 

あなたがそれを完了したら、あなたはファイルディスクリプタを閉じることができ

$ exec 3>&- 
$ echo hello world >&3 
bash: 3: Bad file descriptor 
+1

私の理解では、これは*プラットフォーム上の* on *ディスク上にあります( '/ dev/fd'が利用できないので、代わりに名前付きパイプが使用されます)。 –

関連する問題