si con le letture va...ma comunque secondo me è più corretto usare la lseek() perchè in quel modo non leggi niente e sposti soltato l'indicatore...che è quello che serve a te...e comunque penso che serve fare questo perchè tu non leggi tutta la parola ma leggi solo quella che ti interesa...ovvero le prime 3 lettere...quindi rimane il resto della parola più eventuali caratteri tipo tabulatura(\t), spazi, accapi(\n).
per quanto riguarda la seconda domanda...onestamente non saprei dirti in questo momento...se mi viene qualche idea t faccio sapere...