【发布时间】:2015-04-02 17:25:10
【问题描述】:
我有一个通过管道接受输入的 Go 进程。
tail -f something.foo |去运行 myprog.go
由于标准输入是管道的输出,我无法在 myprog.go 中找到读取键盘输入的方法。这可能吗?
我考虑在 myprog.go 中执行 tail 命令,但我想避免在 myprog.go 崩溃并且无法终止另一个进程时创建另一个进程。
【问题讨论】:
-
这与 Go 无关。也许命名管道 FIFO(7) (man7.org/linux/man-pages/man7/fifo.7.html) 可以提供帮助?
-
也许使用
/dev/fd3作为频道?没有尝试过,但类似的东西:tail ... 1>&3 | go run ...然后打开/dev/fd3用于尾部输入和标准输入用于键盘。我不知道这是否有效,但我看不出它不应该的原因。