Может кто-нибудь объяснить реализацию / алгоритм, который использовался в функции перемотки? или можно реализовать функцию перемотки с помощью lseek ()?
Вот цитата из ссылки:
Вызов для перемотки эквивалентен: fseek (stream, 0L, SEEK_SET); за исключениемв отличие от fseek, перемотка очищает индикатор ошибки.
Вызов для перемотки эквивалентен:
fseek (stream, 0L, SEEK_SET);
за исключениемв отличие от fseek, перемотка очищает индикатор ошибки.
http://www.cplusplus.com/reference/clibrary/cstdio/rewind/