Как очистить все содержимое файла в C?
У меня есть файл с данными пользователя user1. Я хочу использовать тот же файл для user2, очистив содержимое файла.
моя идея заключается в том, что когда приходит новый пользователь, данные предыдущего пользователя должны быть ясными и тот же файл должен быть готов для нового пользователя.
4 ответов
Как сказал @ stefan, используя fopen()
с режимом" w " сделает работу за вас. Когда вы открываете файл с флагом "w", он создает пустой файл для записи. Если файл с тем же именем уже существует, его содержимое стирается, и файл рассматривается как пустой новый файл.
Если файл уже открыт, вы можете использовать freopen()
функция от stdio.h с режимом "w", поскольку он сначала закроет файл, а затем снова откроет его для записи стирания того, что было в файле ранее.
fclose(fopen("file.txt", "w"));
почему это работает:
write: создайте пустой файл для операций вывода. если файл с тем же именем уже существует, его содержимое отбрасывается и файл рассматривается как новый пустой файл.
(цитата из http://www.cplusplus.com/reference/cstdio/fopen/)
есть два пути:
1. fd=open(filename,O_RDONLY | O_WRONLY | O_TRUNC);
2. [cat /dev/null > filename] for BASH. It can be directly used in c program using [system()] system call.
system("cat /dev/null > filename");