J'ai un fichier avec certaines des données de user1. Je veux utiliser le même fichier pour user2 en effaçant le contenu du fichier.
Mon idée est que lorsqu'un nouvel utilisateur arrive, les données de l'utilisateur précédent doivent être claires et le même fichier doit être prêt pour le nouvel utilisateur.
Comme l'a dit @stefan, utiliser fopen()
avec le mode "w" fera le travail pour vous. Lorsque vous ouvrez un fichier avec l'indicateur "w", il crée un fichier vide pour l'écriture. Si un fichier du même nom existe déjà, son contenu est effacé et le fichier est traité comme un nouveau fichier vide.
Si le fichier est déjà ouvert, vous pouvez utiliser la fonction freopen()
de stdio.h avec le mode "w" car il fermera d'abord le fichier, puis le rouvrira pour écrire en effaçant tout ce qui était dans le fichier précédemment.
avec fopen(filename, flag)
il suffit de l'ouvrir avec flag = "w"
ou "wb"
et il sera effacé
fclose(fopen("file.txt", "w"));
Pourquoi cela fonctionne:
write: crée un fichier vide pour les opérations de sortie. Si un fichier du même nom existe déjà, son contenu est supprimé et le fichier est traité comme un nouveau fichier vide .
(citation de http://www.cplusplus.com/reference/cstdio/fopen/ )
Il y a deux façons:
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");