1 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
這些類型在這里并不完全一致。具體來說,
cmd.StdoutPipe
返回一個(gè)io.ReadCloser
然而
pipeR.Read
期待[]byte
作為輸入。
我相信您最終希望利用os 包的讀取和寫入功能來完成您的任務(wù),如下所示:
package main
import (
? ? "log"
? ? "os"
? ? "os/exec"
)
func main() {
? ? cmd := exec.Command("command", "-o", "-")
? ? pipeR, pipeW, _ := os.Pipe()
? ? cmd.ExtraFiles = []*os.File{
? ? ? ? pipeW,
? ? }
? ? cmd.Start()
? ? cmdstdout, err := cmd.StdoutPipe()
? ? if err != nil {
? ? ? ? log.Printf("pipeThruError: %v\n", err)
? ? ? ? os.Exit(1)
? ? }
? ? buf := make([]byte, 100)
? ? cmdstdout.Read(buf)
? ? pipeR.Close()
? ? pipeW.Close()
? ? fd3 := os.NewFile(3, "/proc/self/fd/3")
? ? fd3.Write(buf)
? ? fd3.Close()
}
- 1 回答
- 0 關(guān)注
- 208 瀏覽
添加回答
舉報(bào)