Ele está dizendo que está ligado por um tipo de 64 bits, que tem um valor máximo de (2 ^ 64) - 1 sem sinal, ou (2 ^ 63) - 1 sinalizado (1 bit contém o sinal, +/-).
O tipo não é FILE
; é o que a implementação usa para rastrear o deslocamento no arquivo, ou seja, off_t
, que é um typedef para um tipo de 64 bits assinado . 1 (2 ^ 63) - 1 = 9223372036854775807. Se um terabyte é de 1000 ^ 4 bytes, isso significa ~ 9,2 milhões de TB. Presumivelmente, o motivo pelo qual um tipo assinado é usado é para que ele possa conter um valor de -1 (para erros, etc) ou um deslocamento relativo.
Funções como fseek()
e ftell()
usam um long
assinado, que em sistemas GNU de 64 bits também é de 64 bits.
1. Veja types.h
e typesizes.h
em /usr/include/bits
.