Funzione libreria C - fopen ()

Descrizione

La funzione di libreria C. FILE *fopen(const char *filename, const char *mode) apre il file filename indicato, in base al nome del file utilizzando il dato mode.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione fopen ().

FILE *fopen(const char *filename, const char *mode)

Parametri

  • filename - Questa è la stringa C contenente il nome del file da aprire.

  • mode- Questa è la stringa C contenente una modalità di accesso ai file. Include:

Sr.No. Modalità e descrizione
1

"r"

Apre un file per la lettura. Il file deve esistere.

2

"w"

Crea un file vuoto per la scrittura. Se esiste già un file con lo stesso nome, il suo contenuto viene cancellato e il file viene considerato come un nuovo file vuoto.

3

"a"

Aggiunge a un file. Scrittura delle operazioni, accoda i dati alla fine del file. Il file viene creato se non esiste.

4

"r+"

Apre un file per aggiornare sia la lettura che la scrittura. Il file deve esistere.

5

"w+"

Crea un file vuoto sia per la lettura che per la scrittura.

6

"a+"

Apre un file per la lettura e l'aggiunta.

Valore di ritorno

Questa funzione restituisce un puntatore FILE. Altrimenti, viene restituito NULL e la variabile globale errno viene impostata per indicare l'errore.

Esempio

L'esempio seguente mostra l'utilizzo della funzione fopen ().

#include <stdio.h>
#include <stdlib.h>

int main () {
   FILE * fp;

   fp = fopen ("file.txt", "w+");
   fprintf(fp, "%s %s %s %d", "We", "are", "in", 2012);
   
   fclose(fp);
   
   return(0);
}

Compiliamo ed eseguiamo il programma sopra che creerà un file file.txt con il seguente contenuto -

We are in 2012

Ora vediamo il contenuto del file sopra usando il seguente programma:

#include <stdio.h>

int main () {
   FILE *fp;
   int c;
  
   fp = fopen("file.txt","r");
   while(1) {
      c = fgetc(fp);
      if( feof(fp) ) { 
         break ;
      }
      printf("%c", c);
   }
   fclose(fp);
   
   return(0);
}

Compiliamo ed eseguiamo il programma sopra per produrre il seguente risultato:

We are in 2012