ftruncate en archivo abierto con fopen

La plataforma es Ubuntu Linux en ARM. Quiero escribir una cadena en un archivo, pero siempre quiero truncar el archivo y luego escribir la cadena, es decir, sin anexar.

Tengo este codigo

f=fopen("/home/user1/refresh.txt","w");
fputs( "{"some string",f);
fflush(f);
ftruncate(fileno(f),(off_t)0);
flcose(f);

Si lo ejecuto y luego reviso el archivo, será de longitud cero y cuando se abra, no habrá nada en él. Si quito elfflush llamada, NO será 0 (será 11) y cuando la abra habrá "alguna cadena" en ella. ¿Es este el comportamiento normal? No tengo problemas para llamarfflush, pero quiero hacer esto en un bucle y llamandofflush Puede aumentar considerablemente el tiempo de ejecución.

Respuestas a la pregunta(3)

Su respuesta a la pregunta