ftruncate для файла, открытого с помощью fopen

Платформа - Ubuntu Linux на ARM. Я хочу записать строку в файл, но я хочу каждый раз обрезать файл и затем записывать строку, то есть не добавлять.

У меня есть этот код:

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

Если я запускаю его, а затем проверяю файл, он будет иметь нулевую длину, и при открытии в нем ничего не будет. Если я удалюfflush вызов, это не будет 0 (будет 11), и когда я открою его, в нем будет "некоторая строка". Это нормальное поведение? У меня нет проблем с вызовомfflush, но я хочу сделать это в цикле и вызоваfflush может значительно увеличить время выполнения.

Ответы на вопрос(3)

Ваш ответ на вопрос