After talking with a coworker it seems that "grep" returns a \n after its 
output.  That was the bugger keeping my initial efforts from working.

On Friday, May 18, 2018 at 11:06:46 AM UTC-4, John Fox wrote:
>
> Drilling down farther for the heck of it
>
> os/exec/exec.go
> func (c *Cmd) Output() ([]byte, error) { if c.Stdout != nil {
>
>  return nil, errors.New("exec: Stdout already set")
>
>  }
>
>  var stdout bytes.Buffer
>
>  c.Stdout = &stdout
>
>  captureErr := c.Stderr == nil
>
>  if captureErr {
>
>  c.Stderr = &prefixSuffixSaver{N: 32 << 10}
>
>  }
>
>  err := c.Run()
>
>  if err != nil && captureErr {
>
>  if ee, ok := err.(*ExitError); ok {
>
>  ee.Stderr = c.Stderr.(*prefixSuffixSaver).Bytes()
>
>  }
>
>  }
>
>  return stdout.Bytes(), err
>
> }
>
>
> stdout.Bytes() = bytes.Buffer.Bytes()
> bytes/buffer.go
>
> // Bytes returns a slice of length b.Len() holding the unread portion of the 
> buffer.// The slice is valid for use only until the next buffer modification 
> (that is,// only until the next call to a method like Read, Write, Reset, or 
> Truncate).// The slice aliases the buffer content at least until the next 
> buffer modification,// so immediate changes to the slice will affect the 
> result of future reads.
> func (b *Buffer) Bytes() []byte { return b.buf[b.off:] }
>
> // A Buffer is a variable-sized buffer of bytes with Read and Write 
> methods.// The zero value for Buffer is an empty buffer ready to use.
> type Buffer struct {
>       buf       []byte   // contents are the bytes buf[off : len(buf)]
>       off       int      // read at &buf[off], write at &buf[len(buf)]
>       bootstrap [64]byte // memory to hold first slice; helps small buffers 
> avoid allocation.
>       lastRead  readOp   // last read operation, so that Unread* can work 
> correctly.
>       // FIXME: it would be advisable to align Buffer to cachelines to avoid 
> false
>       // sharing.
> }
>
> I am still not sure where the "10" or '\n' came from, but I know enough to 
> get the program working.  I am really enjoying getting to learn this language 
> and excited for all that I can get it to do, even if it comes with the 
> expected frustrations and head against wall banging.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to