Función de biblioteca C -fsetpos()

Biblioteca estándar de C - <stdio.h>

Descripción

Función de biblioteca Cint fsetpos(FILE *stream, const fpos_t *pos)Establece el flujo dadostreamla posición de archivo a la posición dada. Parámetroposes la posición dada por la función fgetpos.

Declaración

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

int fsetpos(FILE *stream, const fpos_t *pos)

Parámetros

  • stream-- Este es un puntero a un objeto FILE que identifica el flujo.
  • pos-- Este es un puntero a un objeto fpos_t, que contiene la posición obtenida previamente mediante fgetpos.

Valor de retorno

Si tiene éxito, la función devuelve un valor cero; de lo contrario, devuelve un valor distinto de cero y establece la variable globalerrnoa un valor positivo, que puede explicarse mediante perror.

Ejemplo

El siguiente ejemplo demuestra el uso de la función fsetpos().

Ejemplo

#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("Esto sobrescribirá el contenido anterior", fp);
   fclose(fp);
   
   return(0);
}

Compilemos y ejecutemos el programa anterior, esto creará un archivofile.txtcuyo contenido es el siguiente. Primero usamosfgetpos()la función para obtener la posición inicial del archivo, luego escribimos en el archivoHello, World!y luego usamosfsetpos()la función para restablecer el puntero de escritura al principio del archivo, sobrescribiendo el archivo con el siguiente contenido:

Esto sobrescribirá el contenido anterior.

Ahora usemos el siguiente programa para ver el contenido del archivo anterior:

Ejemplo

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

Biblioteca estándar de C - <stdio.h>

Otras extensiones