我有以下代码。可执行程序将在5秒后向stdout发送一些文本。因此,在接收数据之前,in.ReadLine()将阻塞。如何为ReadLine()设置超时或以非阻塞方式设置?
package main
import (
"bufio"
"fmt"
"io"
"os/exec"
)
func main() {
cmd := exec.Command("/path/to/executable")
stdoutReader, stdoutWriter := io.Pipe()
cmd.Stdout = stdoutWriter
cmd.Start()
in := bufio.NewReader(stdoutReader)
b, _, _ := in.ReadLine()
fmt.Println(string(b))
}
1条答案
按热度按时间nhaq1z211#
谢谢你的评论。我自己想出来的。