2013-06-23 127 views
5

有沒有辦法與文件描述符進行交互而不必打開磁盤上的文件?寫入文件描述符3而不寫入磁盤?

這將不先被分配到FD3文件工作:

echo a >&3 
+8

什麼是你想實現它? –

+2

您可以使用'mkfifo'來創建[fifo隊列](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

我的理解是這個*在某些平臺上是在磁盤上(其中'/ dev/fd不可用,因此改用了一個命名管道)。 –