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:
Questo è il dump del file che sto tentando di leggere: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; }
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?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!.............
Grazie a tutti.
Ciao.![]()



Rispondi quotando