fsetpos  função

Protótipo

int fsetpos (FILE * fluxo, const fpos_t * posicao);

Descrição

fsetpos altera a posição atual do fluxo para a posicao passada para a função. A posicao é obtida em uma chamada prévia à função fgetpos passando como argumento o mesmo fluxo.

A função limpa o indicador de EOF e erro do fluxo e remove qualquer efeito prévio de chamadas à função ungetc.

Após chamar fsetpos, a próxima operação pode ser tanto de entrada quanto de saída.

Parâmetros

fluxo - Fluxo a ter a posição lida

posicao - Ponteiro para um objeto fpos_t que será utilizado para modificar a posição

Valor de retorno

Em caso de sucesso, é retornado 0.

Em caso de erro, é retornado um valor diferente de zero e o errno é setado. Ver perror para mais informações.

Exemplo
#include <stdio.h>

int main() {
    FILE* arquivo = fopen("arquivo.txt", "w");
    if(arquivo == NULL) {
        fprintf(stderr, "Erro ao tentar abrir arquivo.txt.\n");
        return 1;
    }

    /* Armazena a posição inicial */
    fpos_t posicao;
    fgetpos(arquivo, &posicao);

    /* Escreve Oi! no arquivo */
    fputs("Oi!", arquivo);
    // o arquivo agora contém "Oi!\n"
    
    /* Volta para a posição inicial */
    fsetpos(arquivo, &posicao);

    /* Escreve Olá no arquivo */
    fputs("Olá", arquivo);
    // o arquivo agora contém "Olá\n"

    fclose(arquivo);

    return 0;
}
Veja também

fgetpos função

fseek função

ftell função