您好,匿名用户
随意问技术百科期待您的加入

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

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

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

用户头像 提问 2013年 11月13日 @ Taric 上等兵 (184 威望)
分享到:

1个回答

0 投票

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

用户头像 回复 2013年 11月13日 @ Kayle 上等兵 (277 威望)
提一个问题:

相关问题

0 投票
1 回复 5 阅读
用户头像 提问 2014年 5月26日 @ Nidalee 上等兵 (346 威望)
0 投票
1 回复 42 阅读
0 投票
1 回复 13 阅读
0 投票
1 回复 48 阅读
0 投票
1 回复 27 阅读
用户头像 提问 2012年 12月1日 @ Soraka 上等兵 (319 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...