Как написать `cat `на Go, используя конвейеры

У меня есть реализация инструмента 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])
        }
    }
}
6
задан Sam 3 August 2012 в 16:28
поделиться