Я пишу программу на Go, которая выполняет серверную программу (также Go). Теперь я хочу, чтобы стандартный вывод дочерней программы находился в окне терминала, в котором я запустил родительскую программу. Один из способов сделать это - использовать команду cmd.Output ()
, но выводит стандартный вывод только после выхода из процесса. (Это проблема, потому что эта серверная программа работает в течение длительного времени, и я хочу прочитать вывод журнала)
Переменная out
имеет тип io.ReadCloser
, а я не знаю, что мне делать с ним для выполнения моей задачи, и я не могу найти в Интернете ничего полезного по этой теме.
func main() {
cmd := exec.Command("/path/to/my/child/program")
out, err := cmd.StdoutPipe()
if err != nil {
fmt.Println(err)
}
err = cmd.Start()
if err != nil {
fmt.Println(err)
}
//fmt.Println(out)
cmd.Wait()
}
Пояснение к коду: раскомментируйте функцию Println
, чтобы код для компиляции, я знаю, что Println (out io.ReadCloser)
не является значимой функцией.
(он производит вывод & {3 | 0
) Эти две строки необходимы только для компиляции кода.