Função de biblioteca C - fseek ()

Descrição

A função da biblioteca C int fseek(FILE *stream, long int offset, int whence) define a posição do arquivo do stream para o dado offset.

Declaração

A seguir está a declaração da função fseek ().

int fseek(FILE *stream, long int offset, int whence)

Parâmetros

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

  • offset - Este é o número de bytes a serem compensados ​​de onde.

  • whence- Esta é a posição de onde o deslocamento é adicionado. É especificado por uma das seguintes constantes -

Sr. Não. Constante e Descrição
1

SEEK_SET

Início do arquivo

2

SEEK_CUR

Posição atual do ponteiro do arquivo

3

SEEK_END

Fim do arquivo

Valor de retorno

Esta função retorna zero se for bem-sucedida, ou então retorna um valor diferente de zero.

Exemplo

O exemplo a seguir mostra o uso da função fseek ().

#include <stdio.h>

int main () {
   FILE *fp;

   fp = fopen("file.txt","w+");
   fputs("This is tutorialspoint.com", fp);
  
   fseek( fp, 7, SEEK_SET );
   fputs(" C Programming Language", fp);
   fclose(fp);
   
   return(0);
}

Vamos compilar e executar o programa acima que irá criar um arquivo file.txtcom o seguinte conteúdo. Inicialmente, o programa cria o arquivo e grava This is tutorialspoint.com, mas depois redefinimos o ponteiro de gravação na 7ª posição desde o início e usamos a instrução puts () que substitui o arquivo com o seguinte conteúdo -

This is C Programming Language

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

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

This is C Programming Language