Ciao ragazzi. Ho un piccolo problemino nella lettura di un file binario. Questo file contiene il carattere di ESCAPE (ASCII 26) e questo mi provoca una "interruzione" nella lettura dei byte successivi. Vi posto il codice ed il dump del file nel punto in cui crea problemi. Il file è molto semplice:
codice:
#include <stdio.h>
int main(int a, char **b) {
int f;
int j=1;
f = open(b[1], 0);
printf(b[1]);
while (j!=EOF) {
read(f, &j, 1);
printf("%c", j);
}
close(f);
return 0;
}
Questo è il dump del file che sto tentando di leggere:
codice:
00 | 43 69 61 6f 20 61 20 74 75 74 74 69 00 1a 43 69 | Ciao a tutti..Ci
10 | 61 6f 21 00 00 00 00 00 00 00 00 00 00 00 00 00 | ao!.............
Il carattere evidenziato provoca il problema: la read() si blocca lì e non prosegue oltre. Il risultato è che a video mi viene restituito il contenuto del file fino alla prima frase ("Ciao a tutti") poi vengono visualizzate una sfilza di frecce a destra (corrispondenti al carattere di ESCAPE, ASCII 26). Come posso "superare" questo carattere e dire alla read di procedere fino alla fine del file?
Grazie a tutti.
Ciao.