Función de biblioteca C - fopen ()

Descripción

La función de la biblioteca C FILE *fopen(const char *filename, const char *mode) abre el filename apuntado, por nombre de archivo usando el dado mode.

Declaración

A continuación se muestra la declaración de la función fopen ().

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

Parámetros

  • filename - Esta es la cadena C que contiene el nombre del archivo que se abrirá.

  • mode- Esta es la cadena C que contiene un modo de acceso a archivos. Incluye -

No Señor. Modo y descripción
1

"r"

Abre un archivo para su lectura. El archivo debe existir.

2

"w"

Crea un archivo vacío para escribir. Si ya existe un archivo con el mismo nombre, su contenido se borra y el archivo se considera como un nuevo archivo vacío.

3

"a"

Se adjunta a un archivo. Operaciones de escritura, agregue datos al final del archivo. El archivo se crea si no existe.

4

"r+"

Abre un archivo para actualizar tanto la lectura como la escritura. El archivo debe existir.

5

"w+"

Crea un archivo vacío para lectura y escritura.

6

"a+"

Abre un archivo para leer y adjuntar.

Valor devuelto

Esta función devuelve un puntero FILE. De lo contrario, se devuelve NULL y la variable global errno se establece para indicar el error.

Ejemplo

El siguiente ejemplo muestra el uso de la función 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);
}

Compilemos y ejecutemos el programa anterior que creará un archivo file.txt con el siguiente contenido -

We are in 2012

Ahora veamos el contenido del archivo anterior usando el siguiente programa:

#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);
}

Compilemos y ejecutemos el programa anterior para producir el siguiente resultado:

We are in 2012