Вы можете решить свои проблемы с fseek()
и друзьями (http://linux.die.net/man/3/fseek).
Однако, смешивая функции "fseek" с текстовыми файлами (особенно если вы читаетеи запись в тот же поток) может вызвать проблемы из-за перевода в библиотеку переносов строк.
Если вы не слишком ограничены в памяти, я бы пошел с сохранением информации из предыдущих строк.
Еще лучше, если возможно, пересмотреть свой алгоритм / структуру данных, чтобы вам не нужно было возвращаться.