Я не использовал libssh до того, как бюст прочитал список возможностей, который говорит мне, что он имеет полную поддержку опроса.
Таким образом, вы должны иметь возможность poll () для мониторинга ваших соединений ssh, а также дескриптора файла STDIN.
например. опросить стандартный ввод для ввода что-то вроде
int timeout = 100; // wait 100ms
struct pollfd fd;
fd.fd = STDIN;
fd.events = POLLIN;
fd.revents = 0;
int ret = poll(&fd, 1, timeout);
if (ret > 0 && (fd.revents & POLLIN != 0)) {
// got some data
} else {
// check for error
}
Первый аргумент опроса - это массив "struct pollfd". Я указал только длину 1 (второй аргумент). Но вы можете выделить массив на столько, сколько вам нужно, с помощью других файловых дескрипторов из libssh, включенных в массив, который вы хотите отслеживать.