素材牛VIP会员
Linux 的 stdin stdout 怎样实现, 我用 Node 怎样模拟?
 13***22  分类:Node.js  人气:907  回帖:1  发布于6年前 收藏

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

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

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

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

 标签:终端node.jslinux

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv5 码农
走***鹿 移动开发工程师 6年前#1

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

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取