Sono riuscito fino a questo punto con la consapevolezza che EOF
è un carattere speciale inserito automaticamente alla fine di un file di testo per indicare la sua fine. Ma ora sento il bisogno di ulteriori chiarimenti su questo. Ho controllato su Google e la pagina di Wikipedia per EOF
ma non è stato possibile rispondere a quanto segue e non ci sono nemmeno collegamenti esatti Stack Overflow per questo. Quindi, per favore mi aiuti su questo:Che cos'è veramente EOF per i file binari? Condizione? Carattere?
mio libro dice che i file modalità binaria tengono traccia della fine del file dal numero di caratteri presenti nella voce di directory del file. (A differenza dei file di testo che hanno un carattere EOF speciale per contrassegnare la fine). Quindi, qual è la storia di
EOF
nel contesto di file binari? Sono confuso perché nel seguente programma che uso con successo!=EOF
confronto durante la lettura da un file.exe
in modalità binaria:#include<stdio.h> #include<stdlib.h> int main() { int ch; FILE *fp1,*fp2; fp1=fopen("source.exe","rb"); fp2=fopen("dest.exe","wb"); if(fp1==NULL||fp2==NULL) { printf("Error opening files"); exit(-1); } while((ch=getc(fp1))!=EOF) putc(ch,fp2); fclose(fp1); fclose(fp2); }
È
EOF
un "personaggio" speciale a tutti? O è una condizione come dice Wikipedia, una condizione in cui il computer sa quando restituire un valore particolare come-1
(EOF
sul mio computer)? Esempio di tale "condizione" si verifica quando una funzione di lettura dei caratteri termina la lettura di tutti i caratteri presenti o quando le funzioni I/O carattere/stringa incontrano un errore nella lettura/scrittura?È interessante notare che il tag Stack Overflow per
EOF
ha unito entrambe le definizioni delloEOF
. Il tag perEOF
ha dichiarato "Nella programmazione del dominio, EOF è una sequenza di byte (o un chacracter) che indica che non ci sono più contenuti dopo questo.", mentre nella sezione "about" è anche detto che "Fine del file (comunemente EOF abbreviato) è una condizione in un sistema operativo per computer in cui non è possibile leggere più dati da un'origine dati. file o stream. "
ma ho la forte sensazione EOF
non sarà un personaggio come ogni altra funzione sembra essere restituirlo quando incontra un errore durante I/O.
Sarà davvero gentile da parte vostra se potete chiarire la questione per me.
https://latedev.wordpress.com/2012/12/04/all-about-eof/ – Mat
@Mat Grazie per questo link. Sembra abbastanza esaustivo.https: //ledev.wordpress.com/2012/12/04/all-about-EOF/ – Thokchom