очистить / усечь файл в C, если он уже открыт в режиме «r +»
Мой код в настоящее время выглядит примерно так (эти шаги разделены на несколько функций):
/* 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);
}
Я знаю, что могу открыть файл в"w"
режим, но я не хочу делать это в этом случае. Я знаю, что есть функцияftruncate
вunistd.h
/sys/types.h
, но я не хочу использовать эти функции, мой код должен быть очень переносимым (на окнах тоже).
Есть ли возможность очистить файл без закрытия / повторного открытия?