Linux 的 stdin stdout 怎样实现, 我用 Node 怎样模拟?

发布于 2022-08-24 13:10:07 字数 491 浏览 13 评论 0

比方我运行的一个脚本, 里面有接受用户输入的内容, 然后交互式返回处理后的结果,,
比方说就一个 REPL 吧, 需要有输入输出的功能,
但是为了其他的需要, 比如我遇到的是重新加载的正在开发的模块,
于是, 我需要加一层脚本, 用来管理我正在开发的模块,
于是 stdin stdout 就不是用户直接操作到的那个了...

我用 Node 尝试了把标准输入输出全做了重定向,, 可是没有成功,,

runner = spwan 'runhaskell', ['h.hs']
process.stdin.pipe runner.stdin
runner.stdout.pipe process.stdout
runner.stderr.pipe process.stderr

代码的结果是返回的输出不会立即输出, 而是在脚本被重启时没有时会一次性输出,,,
我猜是我对标准输入输出的理解有欠缺, 他们不能直接重定向?
求指点..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千里故人稀 2022-08-31 13:10:07

估计是全缓冲导致的。看看nodejs里面对流的设置,改为行缓冲或者无缓冲吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文