From: Tom Lanyon Date: Thu, 23 Nov 2017 01:21:25 +0000 (+1100) Subject: os/exec: Stdout/Stderr doc cleanup. X-Git-Tag: go1.10beta1~147 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c866110689796c42ab379de1402462d03dfe23fa;p=gostls13.git os/exec: Stdout/Stderr doc cleanup. Following comments on CL 76320. Breaks Cmd.Std{out,err} doc into three paragraphs and updates Cmd.Stdin formatting to match. Fixes an erroneous reference to Stdin in the output goroutine comment, while keeping the wording consistent between Stdin and Stdout/Stderr. Change-Id: I186a0e2d4b85dfb939443a17e62a1eb2ef64b1bf Reviewed-on: https://go-review.googlesource.com/79595 Reviewed-by: Rob Pike --- diff --git a/src/os/exec/exec.go b/src/os/exec/exec.go index 4a5789647f..8a49fe3b58 100644 --- a/src/os/exec/exec.go +++ b/src/os/exec/exec.go @@ -77,9 +77,12 @@ type Cmd struct { Dir string // Stdin specifies the process's standard input. + // // If Stdin is nil, the process reads from the null device (os.DevNull). + // // If Stdin is an *os.File, the process's standard input is connected // directly to that file. + // // Otherwise, during the execution of the command a separate // goroutine reads from Stdin and delivers that data to the command // over a pipe. In this case, Wait does not complete until the goroutine @@ -92,14 +95,13 @@ type Cmd struct { // If either is nil, Run connects the corresponding file descriptor // to the null device (os.DevNull). // - // If either is an *os.File, the process's standard output or standard - // error, respectively, are connected directly to that file. Otherwise, - // if either is not nil, during the execution of the command a separate - // goroutine reads from the process's standard output or standard error - // and delivers that to Stdout or Stderr. In this case, Wait does not - // complete until the goroutine stops copying, either because it has - // reached the end of Stdin (EOF or a read error) or because writing to - // the pipe returned an error. + // If either is an *os.File, the corresponding output from the process + // is connected directly to that file. + // + // Otherwise, during the execution of the command a separate goroutine + // reads from the process over a pipe and delivers that data to the + // corresponding Writer. In this case, Wait does not complete until the + // goroutine reaches EOF or encounters an error. // // If Stdout and Stderr are the same writer, and have a type that can // be compared with ==, at most one goroutine at a time will call Write.