Función de biblioteca C - fgetpos ()

Descripción

La función de la biblioteca C int fgetpos(FILE *stream, fpos_t *pos) obtiene la posición actual del archivo del stream y lo escribe a pos.

Declaración

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

int fgetpos(FILE *stream, fpos_t *pos)

Parámetros

  • stream - Este es el puntero a un objeto FILE que identifica la secuencia.

  • pos - Este es el puntero a un objeto fpos_t.

Valor devuelto

Esta función devuelve cero en caso de éxito, de lo contrario un valor distinto de cero en caso de error.

Ejemplo

El siguiente ejemplo muestra el uso de la función fgetpos ().

#include <stdio.h>

int main () {
   FILE *fp;
   fpos_t position;

   fp = fopen("file.txt","w+");
   fgetpos(fp, &position);
   fputs("Hello, World!", fp);
  
   fsetpos(fp, &position);
   fputs("This is going to override previous content", fp);
   fclose(fp);
   
   return(0);
}

Compilemos y ejecutemos el programa anterior para crear un archivo file.txtque tendrá el siguiente contenido. En primer lugar, obtenemos la posición inicial del archivo usandofgetpos()función y luego escribimos ¡Hola, mundo! en el archivo, pero luego usamosfsetpos() función para restablecer el puntero de escritura al principio del archivo y luego sobrescribir el archivo con el siguiente contenido:

This is going to override previous content

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

#include <stdio.h>

int main () {
   FILE *fp;
   int c;
   int n = 0;

   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:

This is going to override previous content