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