Como truncar um arquivo a partir do final? (plataforma cruzada)

Estou tentando encontrar um método de plataforma cruzada para excluirX bytes a partir do final de um arquiv

Atualmente encontrei:

Soluções específicas de plataforma (como truncar para posix): Isso é o que eu não quero, porque quero que o programa C ++ seja executado em várias plataforma

Leia todo o arquivo e escreva-o novamente menos os bytes que quero excluir: gostaria de evitar isso o máximo possível, pois quero que o programa seja o mais eficiente e rápido possíve

Alguma ideia

Se houver um método / função "ir para o final do fluxo de arquivos", eu poderia retroceder os bytes X e cortar o restante do arquivo ou algo semelhant

questionAnswers(6)

yourAnswerToTheQuestion