我在cat下面有一个Unix工具的实现.它从os.Stdin缓冲区中读取多个字节,然后将这些字节写入os.Stdout.有没有办法可以跳过缓冲区Stdin直接管道Stdout?
package main
import "os"
import "io"
func main() {
buf := make([]byte, 1024)
var n int
var err error
for err != io.EOF {
n, err = os.Stdin.Read(buf)
if n > 0 {
os.Stdout.Write(buf[0:n])
}
}
}
Run Code Online (Sandbox Code Playgroud)
Sta*_*ven 11
你可以使用io.Copy() (这里的文档)
例:
package main
import (
"os"
"io"
"log"
)
func main() {
if _, err := io.Copy(os.Stdout, os.Stdin); err != nil {
log.Fatal(err)
}
}
Run Code Online (Sandbox Code Playgroud)
例如,
package main
import (
"io"
"os"
)
func main() {
io.Copy(os.Stdout, os.Stdin)
}
Run Code Online (Sandbox Code Playgroud)