Função de biblioteca C - fgetpos ()

Descrição

A função da biblioteca C int fgetpos(FILE *stream, fpos_t *pos) obtém a posição atual do arquivo do stream e escreve para pos.

Declaração

A seguir está a declaração para a função fgetpos ().

int fgetpos(FILE *stream, fpos_t *pos)

Parâmetros

  • stream - Este é o ponteiro para um objeto FILE que identifica o fluxo.

  • pos - Este é o ponteiro para um objeto fpos_t.

Valor de retorno

Esta função retorna zero em caso de sucesso, caso contrário, um valor diferente de zero em caso de erro.

Exemplo

O exemplo a seguir mostra o uso da função 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);
}

Vamos compilar e executar o programa acima para criar um arquivo file.txtque terá o seguinte conteúdo. Em primeiro lugar, obtemos a posição inicial do arquivo usandofgetpos()e então escrevemos Hello, World! no arquivo, mas depois usamosfsetpos() função para redefinir o ponteiro de gravação no início do arquivo e, em seguida, sobrescrever o arquivo com o seguinte conteúdo -

This is going to override previous content

Agora vamos ver o conteúdo do arquivo acima usando o seguinte 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);
}

Vamos compilar e executar o programa acima para produzir o seguinte resultado -

This is going to override previous content