очистить / усечь файл в 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, но я не хочу использовать эти функции, мой код должен быть очень переносимым (на окнах тоже).

Есть ли возможность очистить файл без закрытия / повторного открытия?

Ответы на вопрос(2)

Ваш ответ на вопрос