
paulo1205
(usa Ubuntu)
Enviado em 25/11/2019 - 00:56h
Quantidade de
bytes, sim. Abra o arquivo em modo binário, use
fseek() para ir até o fim do arquivo, e
ftell() pra dizer a posição em que ele se encontra, relativa ao início do arquivo.
Para arquivos texto, nos quais cada caráter lógico pode corresponder a mais de um
byte dentro do arquivo, a única maneira garantida de ir para o final do arquivo é, imediatamente após abrir o arquivo, ler todo o conteúdo do arquivo com as funções de leitura de texto (
fgetc(),
fgets() e
fscanf(), mas não
fread()) até receber a sinalização de fim do arquivo. Se você quiser, nesse momento você poder usar
fgetpos() para marcar essa posição, e depois usá-la com
fsetpos() para voltar ao ponto marcado (ao contrário de
ftell() e
fseek(), que trabalham com um valor inteiro (mais precisamente
long int) de
bytes a partir da origem,
fgetpos() e
fsetpos() utilizam um tipo de dados opaco (
pos_t) para representar posições do arquivo, e a única forma de obter um valor válido de posição é por meio de
fgetpos(), o que inviabiliza deslocamentos para posições arbitrárias que não tenham sido obtidas com tal função).
... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)