Почему пишущий для os / exec.StderrPipe закрыт в Start ()? - PullRequest
0 голосов
/ 27 сентября 2018

Может кто-нибудь помочь мне понять, почему pw (писатель) планируется закрыть в Start () ?

Я бы ожидал, что pw будет закрыт вместе с pr (читатель) в Wait () .

1 Ответ

0 голосов
/ 27 сентября 2018

closeAfterStart и closeAfterwait - это два среза io.Closers, которые называются соответственно ins Start и Wait из cmd Struct.Теперь, почему это?оба они в основном буферы (кусочки), которые либо должны быть записаны в чтение.В зависимости от того, используются ли они в настоящее время, они закрываются.например, StdInPipe требует сначала прочитать, а затем записать, поэтому pr входит в closeAfterStart и pw в closeAfterWait.Обратное сделано для StdOutPipe.

Программа просто закрывает буферы, которые больше не нужны в коде.В StdErrPipe функция вызывается после выполнения команды, чтобы записать вывод ошибки в какой-либо вывод.Итак, программа уже имеет вывод, который нужно написать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...