Имеется консольная утилита, опционально запрашивающая пароль.
Мне нужно автоматически отреагировать на появившееся password: и передать туда пароль.
При запуске в терминале всё проходит нормально и «password:» выводится на экран. Однако, если перенаправить вывод (например, в cat или в файл), то строка password: не выводится. Причём, не выводится даже после успешного ввода пароля.
Куда копать? Под strace отследить не удаётся. прямой запуск приводит к sigtrap, а если приаттачиться - молчит.
P.S решилось так:
diff --git a/sources/resolvconf-override.c b/sources/resolvconf-override.c
index a24fed7..d303965 100644
--- a/sources/resolvconf-override.c
+++ b/sources/resolvconf-override.c
@@ -86,6 +86,8 @@ int __res_init(void)
int ret = f();
override_ns ();
+ setbuf(stdout, NULL);
+ setbuf(stderr, NULL);
return ret;
}