Да, конечно. Но вам нужно сделать некоторые предположения и признать, что ваши куски не будут точными.
Либо примите стандартную длину строки, либо отсканируйте несколько строк и измерьте ее. Затем вы умножаете это на количество строк, к которым вы стремитесь, и просто надеетесь, что это хорошая оценка.
Или если вы просто хотите, чтобы 10 кусков взяли размер файла и поделили на 10.
Так затем вы переходите к этой точке в файле, используя lseek и read, pread или mmap. Затем вы сканируете вперед, пока не найдете конец строки и начало следующей.
Это не будет точным подсчетом строк, если вы фактически не будете считать каждую строку. Но это будет довольно близко.
Мне было скучно и любопытно, так что проверьте это:
https://github.com/zlynx/linesection