Sono riuscito a scrivere del brevissimo e banalissimo codice che fa al caso mio; praticamente visto che il file è troppo grande e caricandolo in ram occuperebbe troppa memoria, basta leggere riga per riga e cercare qui la parola !
Sottovalutavo fgets(), ho ottenuto il risultato sperato utilizzando sorprendentemente poche risorse.
- Codice: Seleziona tutto
dani[~]$ time grep -b libQtGui.so.4.3.4 MANIFEST.TXT
11361421:-rw-r--r-- root/root 8032 2008-02-26 22:28 opt/qt4/lib/libQtGui.so.4.3.4.debug
11362492:-rwxr-xr-x root/root 7047944 2008-02-26 22:28 opt/qt4/lib/libQtGui.so.4.3.4
real 0m0.062s
user 0m0.029s
sys 0m0.021s
dani[~]$ time ./a.out MANIFEST.TXT libQtGui.so.4.3.4
11361421:-rw-r--r-- root/root 8032 2008-02-26 22:28 opt/qt4/lib/libQtGui.so.4.3.4.debug
11362492:-rwxr-xr-x root/root 7047944 2008-02-26 22:28 opt/qt4/lib/libQtGui.so.4.3.4
real 0m0.243s
user 0m0.192s
sys 0m0.024s
dani[~]$
...molto piu' lento ma comunque sopra le mie aspettative.
@gioco: le pcre sembrano interessanti, ma che tu sappia agiscono anche su file ?
@Mario: grep ed egrep mi sembra siano la stessa cosa.