我有以下 Node.js 代码:
var fs=require('fs');
var util=require('util');
var n2c=fs.createReadStream('./n2c');
var c2n=fs.createReadStream('./c2n');
n2c.on('data', function(b){
util.puts(b);
});
c2n.on('data',function(b){
util.puts(b);
});
如您所见,我有两个 FIFO 文件描述符(使用以下方法创建:mkfifo n2c
、mkfifo c2n
、chmod 777 n2c c2n
)
当我在另一个窗口中 echo "Hello"> n2c
时,“Hello”显示正常。但当我尝试再次执行此操作时,echo "Hello"> n2c
挂起,并且 node.js 窗口中没有显示任何内容。
我该如何解决这个问题?我希望能够在 Node.js 窗口中无限地回显“Hello”。
请帮忙!
最佳答案
这是使用终端测试流的简单方法:
$ cat > n2c
Here you can type stuff
that will be streamed whenever you add a
newline.
You can send EOF (end of file) by
pressing Ctrl+D.
当您返回时,流将为 Node 提供每一行,并且在您执行 Ctrl+D 或以其他方式发送 EOF 字符之前不会中断。
echo
在一行后消失的原因是它会在您键入任何内容后自动发送 EOF。
答案可能有点晚了,但对其他人来说可能有用。
关于Node.js FIFO - 写入文件描述符时进程挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9018526/