Size: a a a

2020 August 13

Н

Никита in Go-go!
Владимир Столяров
Проверять stdout на наличие приглашения ко вводу
Как? Какой-то сигнал проверять?
источник

ЕО

Евгений Омельченко... in Go-go!
Никита
Запускаю процесс через exec.Command. Нужно проверять, что процесс что-то просит в Stdin. Каким образом можно реализовать эту проверку?
Что значит просит?
источник

с

сонная википедия... in Go-go!
Daniel Podolsky
а что она там знает-то?
что программа ожидает ввода в stdin
источник

Н

Никита in Go-go!
Евгений Омельченко
Что значит просит?
Ждет данных с Stdin
источник

ЕО

Евгений Омельченко... in Go-go!
Создайте пайп и пишите в него пока не переполнится
источник

DP

Daniel Podolsky in Go-go!
сонная википедия
что программа ожидает ввода в stdin
и как она это знает, с вашей точки зрения?
источник

p

pragus in Go-go!
Никита
Как? Какой-то сигнал проверять?
Никак. Нет никаких сигналов
источник

ВС

Владимир Столяров... in Go-go!
Никита
Как? Какой-то сигнал проверять?
Установить в https://golang.org/pkg/os/exec/#Cmd Stdout и читать, пока не найдётся нужный паттерн, говорящий о том, что пора добавлять данные в stdin
источник

ЕО

Евгений Омельченко... in Go-go!
pragus
Никак. Нет никаких сигналов
Можно смотреть, что процесс в анинтерраптбл слипе. Можно его стрейсить и ждать пока он во врайте окажется. Но лучше так не делать, конечно
источник

Н

Никита in Go-go!
Владимир Столяров
Установить в https://golang.org/pkg/os/exec/#Cmd Stdout и читать, пока не найдётся нужный паттерн, говорящий о том, что пора добавлять данные в stdin
Паттерн в виде текста который отдает в Stdout например?
источник

ВС

Владимир Столяров... in Go-go!
Да
источник

с

сонная википедия... in Go-go!
Daniel Podolsky
и как она это знает, с вашей точки зрения?
то что программа попросила ОС уведомить ее о том, когда появятся данные в stdin
вызов select например
источник

DP

Daniel Podolsky in Go-go!
Евгений Омельченко
Можно смотреть, что процесс в анинтерраптбл слипе. Можно его стрейсить и ждать пока он во врайте окажется. Но лучше так не делать, конечно
с strace, кстати, рабочий вариант 🙂
источник

ЕО

Евгений Омельченко... in Go-go!
Daniel Podolsky
с strace, кстати, рабочий вариант 🙂
Это пиздец, извините за выражение. Но технически рабочий
источник

DP

Daniel Podolsky in Go-go!
сонная википедия
то что программа попросила ОС уведомить ее о том, когда появятся данные в stdin
вызов select например
не-а. нет там cелекта. там сразу read на fd 0
источник

Н

Никита in Go-go!
Блин, херово, что только так
источник

Н

Никита in Go-go!
Странно что нет механизма для такого
источник

ЕО

Евгений Омельченко... in Go-go!
Никита
Странно что нет механизма для такого
Потому что он не нужен. Ввод-вывод буферизованный обычно всё равно
источник

ЕО

Евгений Омельченко... in Go-go!
Лей пока льётся и всё
источник

Н

Никита in Go-go!
Евгений Омельченко
Потому что он не нужен. Ввод-вывод буферизованный обычно всё равно
Нужен, если процесс вызывает другой процесс
источник