Datei in C löschen / kürzen, wenn sie bereits im Modus „r +“ geöffnet ist

Mein Code sieht derzeit ungefähr so ​​aus (diese Schritte sind in mehrere Funktionen unterteilt):

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

Ich weiß, ich könnte die Datei mit in öffnen"w" Modus, aber ich möchte dies in diesem Fall nicht tun. Ich weiß, dass es eine Funktion gibtftruncate imunistd.h/sys/types.hIch möchte diese Funktionen jedoch nicht verwenden. Mein Code sollte in hohem Maße portabel sein (auch unter Windows).

Gibt es eine Möglichkeit, eine Datei zu löschen, ohne sie zu schließen / erneut zu öffnen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage