밑에서 내가 궁리해본 거 실제 실행시켜보니 잘못 해놓은게 많아서
고쳐서 결과 내보고 정리해봄
package main
import (
"os/exec"
"io"
"fmt"
)
func main() {
cmd := exec.Command("./printer")
stdoutStream, _ := cmd.StdoutPipe()
cmd.Start()
stdoutStreamReader(stdoutStream, 6)
}
func stdoutStreamReader(stdoutStream io.ReadCloser, bufsize int) {
buffer := make([]byte, bufsize);
for {
n, err := stdoutStream.Read(buffer)
if err == io.EOF {
stdoutStream.Close()
break
}
buffer = buffer[0:n]
fmt.Print(string(buffer))
}
}
reader := bufio.NewReader(stdout) worker.Start() var buffer [2048]byte for i := 0; i < 2048; i++ { c, _ := reader.ReadByte() left := reader.Buffered() buffer[i] = c if left == 0 { break } }
걍 이렇게 했음
요걸로 해도 되겠네. 리더 종류가 워낙 많아서 ㅋㅋ
ㅇㅇ 리더가 너무 많아서 헷갈렸음 scanner도 있던데 읽어보기 귀찮아서 걍 가장 쓰기편한걸로 만들었음
스캐너가 리더보다 적합한 경우가 99%라는 이야기가.. 뭐로하든 잘만 나오면 장땡이지만 ㅋㅋ