6

以下の Unix ツールを実装していcatます。からバッファにバイト数を読み取り、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])
        }
    }
}
4

2 に答える 2

11

使用できますio.Copy() (ドキュメントはこちら)

例:

package main

import (
    "os"
    "io"
    "log"
)

func main() {
    if _, err := io.Copy(os.Stdout, os.Stdin); err != nil {
        log.Fatal(err)
    }
}
于 2012-08-03T16:43:15.303 に答える
5

例えば、

package main

import (
    "io"
    "os"
)

func main() {
    io.Copy(os.Stdout, os.Stdin)
}
于 2012-08-03T16:45:33.897 に答える