在Go中,可以使用os.Pipe()函数创建一个管道来实现将输出转接到输入的功能。
具体步骤如下:
导入
os包:import "os"使用
os.Pipe()函数创建一个管道对象:r, w := os.Pipe()将标准输出重定向到管道写入端:
os.Stdout = w启动一个新的goroutine来从管道读取数据并打印到控制台:
go func() { io.Copy(os.Stdin, r) }()程序继续执行,将输出写入管道。
完整代码示例:
package main
import (
"io"
"os"
)
func main() {
r, w := os.Pipe()
os.Stdout = w
go func() {
io.Copy(os.Stdin, r)
}()
println("Hello, world!")
}
运行此程序后,你可以在控制台中看到”Hello, world!“这行输出,并且此时控制台也可以接收输入。




