Page 473 - Informatica dalla A a Z
P. 473

I File: La gestione dei file offerta dal linguaggio C++ è molto elementare. Si hanno due tipi
           di accesso: uno “normale” ed uno più avanzato (a “basso livello”), in grado di garantire
           l’accesso alle funzioni del sistema operativo.

           I file sono trattati come un tipo di dati derivato, cioè ottenuto dai tipi elementari esistenti.


           Quando si apre e si gestisce un file, si ha a che fare con un puntatore al file (file pointer),
           che è una variabile contenente un qualche riferimento univoco al file stesso.

           Per gestire i puntatori ai file, occorre dichiarare una variabile come puntatore al tipo deri-

           vato “FILE”:

              #include <stdio.h>
              ...
              int main ()
              {
                  FILE *pf;
                  ...
              }

           Nota: ‘FILE’ è scritto in maiuscolo in quanto fa riferimento ad una “macro” che si trova nel
           file di intestazione “stdio.h”. Idem per ‘EOF’.


           Un’altra macro molto importante è “EOF”, che rappresenta il raggiungimento della fine del
           file. Per aprire un file si usa la funzione “fopen()” che restituisce il puntatore al file se tutto

           è andato bene, altrimenti restituirà il puntatore ‘NULL’, in caso di fallimento dell’opera-
           zione.

                               FILE *fopen (char *file, char *modalità)


           Nota: Abbiamo visto come la funzione fopen() permetta di aprire il file indicato attraverso
           la stringa fornita nel primo parametro. Tale stringa può contenere anche le informazioni
           sul percorso necessario a raggiungerlo.


           Il primo parametro della funzione fopen() è un puntatore a caratteri che contiene il nome
           del file da aprire. Come secondo parametro del comando è possibile inserire la “modalità”
           di apertura del file, come ad esempio ‘r’ per aprire il file in sola lettura.



















                                                            469
   468   469   470   471   472   473   474   475   476   477   478