当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。