2013-06-23 102 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不可用,因此改用了一个命名管道)。 –