C/Appendice/Librerie standard/stdio.h: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m wikilink a #FILE
Riga 138:
| descparametro1=descrittore del file o dello stream
| descrizione=Svuota i buffer per un dato stream trasferendo i dati dalla memoria al supporto fisico.
}}
 
=== fgetpos() ===
{{ Funzione C
| nome=fgetpos
| valoreritorno=int
| descritorno=ritorna 0 in caso di successo, altrimenti un valore non-nullo.
| tipoparametro1=[[#FILE|FILE]]*
| nomeparametro1=stream
| descparametro1=descrittore del file o dello stream
| tipoparametro2=[[#fpos_t|fpos_t]]*
| nomeparametro2=pos
| descparametro2=indirizzo della variabile in cui registrare la posizione corrente
| descrizione=Riporta la posizione corrente di lettura o scrittura nel file identificato dal primo parametro e la salva nella variabile specificata nel secondo. In caso di errore, la variabile <code>[[C/Appendice/Guida di riferimento alle funzioni delle librerie standard/errno.h#errno|errno]]</code> viene impostata a un codice identificativo dell'errore.
}}
 
=== fopen() ===
{{ Funzione C
| nome=fopen
| valoreritorno=[[#FILE|FILE]]*
| descritorno=ritorna un puntatore ad una struttura di tipo [[#FILE|FILE]] in caso di successo, altrimenti [[#NULL|NULL]]
| tipoparametro1=const char*
| nomeparametro1=path
| descparametro1=indirizzo del file da aprire
| tipoparametro2=const char*
| nomeparametro2=mode
| descparametro2=
| descrizione=Apre un file identificato dal parametro ''path'' con la modalità descritta da ''mode'' e vi associa una struttura descrittiva di tipo [[#FILE|FILE]]. In caso di errore, la variabile <code>[[C/Appendice/Guida di riferimento alle funzioni delle librerie standard/errno.h#errno|errno]]</code> viene impostata a un codice identificativo dell'errore.
 
Il parametro ''mode'' può assumere i seguenti valori:
*'''"r"''': il file è aperto in sola lettura. La posizione è impostata all'inizio del file. Restituisce un errore nel caso in cui il file non esista.
*'''"r+"''': il file viene aperto in lettura/scrittura. La posizione è impostata all'inizio del file. Restituisce un errore nel caso in cui il file non esista.
*'''"w"''': il file viene aperto in scrittura. La posizione è impostata all'inizio del file. Se il file non esiste, viene creato; se invece il file esiste, ne viene cancellato il contenuto.
*'''"w+"''': il file viene aperto in lettura/scrittura. La posizione è impostata all'inizio del file. Se il file non esiste, viene creato; se invece il file esiste, ne viene cancellato il contenuto.
*'''"a"''': il file viene aperto in scrittura (modalità ''append'', cioè ''aggiunta''). La posizione è impostata alla fine del file. Se il file non esiste, viene creato; se invece il file esiste, il contenuto viene conservato inalterato ed i nuovi dati scritti vengono aggiunti dopo quelli preesistenti.
*'''"a+"''': il file viene aperto in lettura/scrittura (modalità ''append'', cioè ''aggiunta''). La posizione di lettura è impostata all'inizio del file, mentre la scrittura è permessa solo alla fine del file. Se il file non esiste, viene creato; se invece il file esiste, il contenuto viene conservato inalterato ed i nuovi dati scritti vengono aggiunti dopo quelli preesistenti.
 
Aggiungere il carattere '''b''' al parametro ''mode'' apre i file in modalità ''binaria'', altrimenti essi vengono aperti in modalità testuale. Questo non ha alcun effetto sui sistemi compatibili POSIX (ad esempio GNU/LINUX), mentre invece è importante nei sistemi non-POSIX, come Microsoft Windows, in cui i caratteri di carriage returno (codice ASCII 0x0D) vengono trasformati in carriage return + line feed (codici ASCII 0x0D + 0x0A).
 
Quando si aprono file in modalità lettura/scrittura, lo standard prevede che ogni volta che si passa da un'operazione di scrittura a una di lettura o viceversa, è necessario chiamare la funzione <code>[[#fflush()|fflush()]]</code> oppure <code>[[#fseek()|fseek()]]</code> per poter svuotare i buffer prima del cambio di modalità.
}}