usuń / skróć plik w C, gdy jest już otwarty w trybie „r +”

Mój kod wygląda obecnie mniej więcej tak (kroki te zostały podzielone na wiele funkcji):

/* 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);
}

Wiem, że mogę otworzyć plik za pomocą"w" tryb, ale nie chcę tego robić w tym przypadku. Wiem, że jest funkcjaftruncate wunistd.h/sys/types.h, ale nie chcę korzystać z tych funkcji mój kod powinien być bardzo przenośny (także w systemie Windows).

Czy istnieje możliwość wyczyszczenia pliku bez zamykania / ponownego otwierania?

questionAnswers(2)

yourAnswerToTheQuestion