#c #c 17
Вопрос:
для сетей у нас есть asio
то, что обеспечивает асинхронную связь высокого уровня, независимую от платформы, через сокеты. Есть ли эквивалент для старого доброго poll()
epoll()
, или select()
?
В принципе, я хотел бы иметь возможность ждать событий на an ifstream
, если это возможно.
Спасибо
Комментарии:
1. Независимо от того, проводите вы опрос или нет, это не имеет никакого отношения к C . Это может быть правильной стратегией, если библиотеки не поддерживают обратные вызовы и/или уведомления. Что вы можете сделать способом c , так это выполнить опрос с помощью асинхронной задачи. Например, используйте std::async/std::future и std::condition_variable с временным ожиданием (интервал опроса), который также ожидает приостановки опроса или условия завершения опроса. (сегодня уже слишком поздно писать вам пример). Я думаю, что это также будет включать en.cppreference.com/w/cpp/io/basic_istream/peek
2. К сожалению, стандартного решения, о котором я знаю, не существует. Помните, что потоки ввода-вывода C невероятно глупы, потому что они должны работать одинаково для очень широкого набора возможных целей с очень разной аппаратной и системной поддержкой.