Función de la biblioteca C -fgetpos()

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

Descripción

La función de la biblioteca Cint fgetpos(FILE *stream, fpos_t *pos)obtiene del flujostreamla posición actual del archivo, y la escribe enpos。

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 al objeto FILE, que identifica el flujo.
  • pos-- Este es el puntero al objeto fpos_t.

Valor de retorno

Si tiene éxito, la función devuelve cero. Si ocurre un error, devuelve un valor distinto de cero.

Ejemplo

El siguiente ejemplo demuestra 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("这将覆盖之前的内容", fp);
   fclose(fp);
   
   return(0);
}

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

Esto sobrescribirá el contenido anterior.

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

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

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

Otras extensiones