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
может значительно увеличить время выполнения.