borrar / truncar el archivo en C cuando ya está abierto en el modo "r +"

Mi código actualmente se parece a esto (estos pasos se dividen en varias funciones):

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

Sé que podría abrir el archivo con en"w" Modo, pero no quiero hacer esto en este caso. Sé que hay una funciónftruncate enunistd.h/sys/types.h, pero no quiero usar estas funciones, mi código debería ser altamente portátil (también en Windows).

¿Existe la posibilidad de borrar un archivo sin cerrarlo / reabrirlo?