Для перехода к строке 37710 текстового файла, к сожалению, требуется прочитать все строки 37710 перед этим в большинстве операционных систем.
В большинстве операционных систем текстовые файлы представляют собой двоичные файлы с соглашением о переводе строк. Но ОС не кеширует, где находятся новые строки.
Итак, чтобы найти новые строки, вы должны прочитать каждый байт.
Если ваша программа сохранила смещение байта файла, который она достигла, она может найти это место.
Вы можете сохранить состояние вашей программы в каком-либо файле конфигурации во время завершения работы и установить его возобновление по умолчанию при повторном запуске. Для этого потребуется перехватить сигнал, который вы используете для выключения, сделать так, чтобы ваша основная логика заметила установленный флаг сигнала, а затем аккуратно завершить работу. Это очень C-esque операция.
Теперь другой традиционный способ сделать программу управляемой удаленно - это прослушивать порт TCP (и / или stdin) и принимать там команды командной строки.
Чтобы пойти по этому пути, вы должны написать компонент REPL , а затем подключить его к любому вводу и выводу.
Либо вы выполняете REPL в сопрограммном порядке между процессами обработки файлов, либо вы создаете отдельный поток для выполнения REPL, и он асинхронно связывается с потоком обработки.
Однако, это может быть за пределами вашего мастерства. Каждый шаг этого (написание системы REPL, когда она не блокирует основную работу, отвечает на команды, а затем подключает ее к порту TCP) потребует некоторых усилий и обучения с вашей стороны.