Поскольку fseek()
не работает с каналами, какие методы существуют для имитации поиска вперед? Наивный подход состоит в том, чтобы использовать fread()
и выбрасывать считанное содержимое в буфер памяти. Для больших поисков, чтобы избежать огромных буферов, вы должны использовать один и тот же буфер снова и снова с окончательным чтением, используя только часть буфера.
Но единственный ли это подход? Есть ли другой способ избежать буфера и потенциального многократного чтения?