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