Ponteiros de arquivo
Quando um arquivo é aberto, o Windows associa um ponteiro de arquivo ao fluxo padrão. Esse ponteiro de arquivo é um valor de deslocamento de 64 bits que especifica o próximo byte a ser lido ou o local para receber o próximo byte gravado. Sempre que um arquivo é aberto, o sistema coloca o ponteiro do arquivo no início do arquivo, que é o deslocamento zero. Cada operação de leitura e gravação avança o ponteiro do arquivo pelo número de bytes que estão sendo lidos e gravados. Por exemplo, se o ponteiro do arquivo estiver no início do arquivo e uma operação de leitura de 5 bytes for solicitada, o ponteiro do arquivo estará localizado no deslocamento 5 imediatamente após a operação de leitura. À medida que cada byte é lido ou gravado, o sistema avança o ponteiro do arquivo. O ponteiro do arquivo também pode ser reposicionado chamando a função SetFilePointer .
Quando o ponteiro do arquivo atinge o final de um arquivo e o aplicativo tenta ler do arquivo, nenhum erro ocorre, mas nenhum bytes é lido. Portanto, a leitura de zero bytes sem um erro significa que o aplicativo chegou ao final do arquivo. Escrever zero bytes não faz nada.
Um aplicativo pode truncar ou estender um arquivo usando a função SetEndOfFile . Essa função define o final do arquivo como a posição atual do ponteiro do arquivo.