У меня есть функция popen()
, которая выполняет tail -f sometextfile
. Пока в файловом потоке есть данные, очевидно, я могу получить данные через fgets()
. Теперь, если из хвоста не приходят новые данные, fgets()
зависает. Я пробовал ferror()
и feof()
безрезультатно. Как я могу убедиться, что fgets()
не пытается прочитать данные, когда в файловом потоке нет ничего нового?
Одним из предложений было select()
. Поскольку это для платформы Windows, выбор не работает, поскольку анонимные каналы, похоже, не работают для нее (см. это сообщение).