long int ftell (FILE * fluxo);
Retorna o valor atual do indicador de posição do fluxo.
Esse valor pode ser usado pela função fseek com origem SEEK_SET para retornar o indicador a posição atual.
fluxo - Fluxo a ter o valor do indicador de posição lido
Em caso de sucesso, é retornado o valor atual do indicador de posição.
Em caso de erro, é retornado -1.
#include <stdio.h>
int main() {
FILE* arquivo = fopen("arquivo.txt", "rb"); // b indica modo binário
if(arquivo == NULL) {
fprintf(stderr, "Erro ao tentar abrir arquivo.txt.");
return 1;
}
/* Pula até o fim do arquivo */
fseek(arquivo, 0, SEEK_END);
/* Lê o indicador de posição (em bytes) */
long tamanho = ftell(arquivo);
fclose(arquivo);
printf("O arquivo.txt possui %ld bytes.\n", tamanho);
return 0;
}