當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


GO Cmd.StdoutPipe用法及代碼示例

GO語言"os/exec"包中"Cmd.StdoutPipe"類型的用法及代碼示例。

用法:

func(c *Cmd) StdoutPipe()(io.ReadCloser, error)

StdoutPipe 返回一個管道,該管道將在命令啟動時連接到命令的標準輸出。

Wait 會在看到命令退出後關閉管道,所以大多數調用者不需要自己關閉管道。因此,在管道的所有讀取完成之前調用 Wait 是不正確的。出於同樣的原因,使用StdoutPipe 時調用Run 是不正確的,請參閱示例以了解慣用用法。

例子:

package main

import (
	"encoding/json"
	"fmt"
	"log"
	"os/exec"
)

func main() {
	cmd := exec.Command("echo", "-n", `{"Name": "Bob", "Age": 32}`)
	stdout, err := cmd.StdoutPipe()
	if err != nil {
		log.Fatal(err)
	}
	if err := cmd.Start(); err != nil {
		log.Fatal(err)
	}
	var person struct {
		Name string
		Age  int
	}
	if err := json.NewDecoder(stdout).Decode(&person); err != nil {
		log.Fatal(err)
	}
	if err := cmd.Wait(); err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s is %d years old\n", person.Name, person.Age)
}

相關用法


注:本文由純淨天空篩選整理自golang.google.cn大神的英文原創作品 Cmd.StdoutPipe。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。