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.