如何从管道文件中返回?

8

使用mkfifo命令可以创建管道文件,然后我用vim编辑器打开了该文件。

  mkfifo pipe_file

  vim pipe_file

但我无法回到我的终端,如何回到终端?

1个回答

6
首先,FIFO是一种阻塞IO。进程在读取FIFO时会被阻塞,也就是说,当你执行vim somefifo命令时,vim进程会等待另一个进程打开somefifo进行写入。
因此,你可以尝试启动另一个进程,例如,在新的终端中执行echo "foo">somefifo命令,然后你就可以在vim进程中执行正常操作,比如按ZQ退出。

1
由于某种原因,我需要两次写入FIFO才能成功解除Vim的阻塞。或者更准确地说,需要两个换行符。因此,如果Kent的建议不起作用,请尝试echo A>somefifo,然后再次执行echo A>somefifo - Quasímodo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接