limpar / truncar o arquivo em C quando já estiver aberto no modo "r +"
Meu código atualmente se parece com algo assim (essas etapas divididas em várias funções):
/* open file */
FILE *file = fopen(filename, "r+");
if(!file) {
/* read the file */
/* modify the data */
/* truncate file (how does this work?)*/
/* write new data into file */
/* close file */
fclose(file);
}
Eu sei que eu poderia abrir o arquivo com in"w"
modo, mas eu não quero fazer isso neste caso. Eu sei que tem uma funçãoftruncate
emunistd.h
/sys/types.h
, mas eu não quero usar essas funções meu código deve ser altamente portátil (no windows também).
Existe a possibilidade de limpar um arquivo sem fechar / reabri-lo?