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