gpt4 book ai didi

javascript - 为什么在 Node 中打开 fifo 管道会阻止 child_process.exec?

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:55 25 4
gpt4 key购买 nike

当我在 bash 中运行它时:

mkfifo im-a-pipe && node -e '
var fs = require("fs")
var childProcess = require("child_process")

console.log("pre-open")
fs.open("im-a-pipe", "w", function(err, fd){
if(err)
throw err
console.log("opened")
})
console.log("post-open")
childProcess.exec("echo wat")
console.log("YOU CAN NOT SEE MEEE")
'

我期望以下输出:

pre-open
post-open
YOU CAN NOT SEE MEEE

但是 Node 在打印前两行后等待:

pre-open
post-open

我认为这可能与管道阻塞有关,直到有东西打开另一侧,但这种行为让我感到惊讶。

我是否遗漏了这些功能的运作方式?

最佳答案

这可能是您的操作系统中的错误,或者只是旧版本的 Node.js 中的错误。我可以在使用 Node 4 的 Mac 上运行。一位同事可以在 Debian 上运行它,但直到他升级到 Node 8 后才可以。

关于javascript - 为什么在 Node 中打开 fifo 管道会阻止 child_process.exec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40294253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com