diff options
| author | Emmanuel Odeke <emm.odeke@gmail.com> | 2016-09-14 02:11:02 -0700 |
|---|---|---|
| committer | Andrew Gerrand <adg@golang.org> | 2016-09-16 03:41:53 +0000 |
| commit | c55c33af52c5ed97c93ec67bf7373d095bcb957d (patch) | |
| tree | e7e42df6208a3d3f9cac94056df1a0d386d1c37d /src/os/exec/example_test.go | |
| parent | 1bd91d4ccc57d3dbb2e5452c16ff6281d53e9763 (diff) | |
| download | go-c55c33af52c5ed97c93ec67bf7373d095bcb957d.tar.xz | |
os/exec: add examples for CombinedOutput, StdinPipe, StderrPipe
Updates #16360.
Adds examples for:
+ CombinedOutput
+ StdinPipe
+ StderrPipe
Change-Id: I19293e64b34ed9268da00e0519173a73bfbc2c10
Reviewed-on: https://go-review.googlesource.com/29150
Run-TryBot: Andrew Gerrand <adg@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Andrew Gerrand <adg@golang.org>
Diffstat (limited to 'src/os/exec/example_test.go')
| -rw-r--r-- | src/os/exec/example_test.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/os/exec/example_test.go b/src/os/exec/example_test.go index 55eaac8abc..a38e2889e6 100644 --- a/src/os/exec/example_test.go +++ b/src/os/exec/example_test.go @@ -8,6 +8,8 @@ import ( "bytes" "encoding/json" "fmt" + "io" + "io/ioutil" "log" "os/exec" "strings" @@ -73,3 +75,51 @@ func ExampleCmd_StdoutPipe() { } fmt.Printf("%s is %d years old\n", person.Name, person.Age) } + +func ExampleCmd_StdinPipe() { + cmd := exec.Command("cat") + stdin, err := cmd.StdinPipe() + if err != nil { + log.Fatal(err) + } + + go func() { + defer stdin.Close() + io.WriteString(stdin, "values written to stdin are passed to cmd's standard input") + }() + + out, err := cmd.CombinedOutput() + if err != nil { + log.Fatal(err) + } + + fmt.Printf("%s\n", out) +} + +func ExampleCmd_StderrPipe() { + cmd := exec.Command("sh", "-c", "echo stdout; echo 1>&2 stderr") + stderr, err := cmd.StderrPipe() + if err != nil { + log.Fatal(err) + } + + if err := cmd.Start(); err != nil { + log.Fatal(err) + } + + slurp, _ := ioutil.ReadAll(stderr) + fmt.Printf("%s\n", slurp) + + if err := cmd.Wait(); err != nil { + log.Fatal(err) + } +} + +func ExampleCmd_CombinedOutput() { + cmd := exec.Command("sh", "-c", "echo stdout; echo 1>&2 stderr") + stdoutStderr, err := cmd.CombinedOutput() + if err != nil { + log.Fatal(err) + } + fmt.Printf("%s\n", stdoutStderr) +} |
