PDA

View Full Version : [C] SETTARE EOF


eaangi77
30-09-2007, 23:17
Salve mi sto dilettando con la programmazione in C.

Volevo sapere se è possibile settare l'eof una volta che è stata raggiunta la fine del file.

In poche parole il valore che restituisce feof(* file) una volta raggiunta la fine del file è 1 e possibile risettare il tutto a 0 in modo da continuare la lettura.

Grazie a tutti.
:muro: :muro:

andbin
01-10-2007, 08:45
Volevo sapere se è possibile settare l'eof una volta che è stata raggiunta la fine del file.

In poche parole il valore che restituisce feof(* file) una volta raggiunta la fine del file è 1 e possibile risettare il tutto a 0 in modo da continuare la lettura.La tua richiesta non è molto chiara e forse non ha nemmeno granché senso. Per "eof" in genere si possono intendere 2 cose: la fine fisica del file (non ci sono altri byte da leggere) o il carattere di eof (codice ASCII 0x1A) per i file di testo che comunque non è uno standard vero e proprio.

E quindi quando arrivi alla fine fisica del file e feof() ritorna != 0, scusa, cosa vorresti ancora leggere???

eaangi77
01-10-2007, 10:21
Ho due processi uno scrittore e un lettore.

Se lo scrittore scrive, dopo che il lettore è arrivato a EOF, quest'ultimo non riprende a leggere o sbaglio?

Non so se mi sono spiegato.
Grazie comunque

andbin
01-10-2007, 10:38
Ho due processi uno scrittore e un lettore.

Se lo scrittore scrive, dopo che il lettore è arrivato a EOF, quest'ultimo non riprende a leggere o sbaglio?

Non so se mi sono spiegato.Sì, ora è più chiaro cosa vuoi fare.
Comunque se vuoi azzerare il flag di eof, usa la funzione void clearerr(FILE *stream).
Se un altro processo "allunga" un file e tu fai un clearerr seguito da feof, trovi che non c'è più eof e quindi sai che puoi continuare a leggere.
feof fornisce solo una informazione, non impedisce una lettura, che puoi sempre fare.

eaangi77
02-10-2007, 20:50
Ok ho provato tutto grazie per la dritta. A presto.