Les fichiers vides sous linux.
Aller à la navigation
Aller à la recherche
Le sujet peut paraitre surprenant mais il est important. Comment créer un fichier vide sous linux et comment "vider" un fichier.
# Le fichier "fichier.txt" n'existe pas.
# On vérifie
ls -l fichier.txt
# Retourne :
# ls: cannot access fichier.txt: No such file or directory
# Pour créer un fichier on fait:
touch fichier.txt
# Normalement touch sert à mettre à jour la date de dernière modification du fichier
# En revanche si il n'existe pas (comme c'est le cas ici) il est cré "vide"
# On vérifie
ls -l fichier.txt
# Retourne :
# -rw-r----- 1 user users 0 Feb 17 11:49 fichier.txt
# le fichier a bien une taille de 0 octets.
# on le remplis avec :
date >> fichier.txt
date >> fichier.txt
# On vérifie
ls -l fichier.txt
# Retourne :
# -rw-r----- 1 user users 58 Feb 17 11:51 fichier.txt
# le fichier a bien grossi.
cat fichier.txt
# nous donne:
cat fichier.txt
# Mon Feb 17 11:50:59 CET 2025
# Mon Feb 17 11:51:01 CET 2025
Maintenant on suppose que ce fichier est ouvert par un process qui envoie des données dedans. Exemple en C (log.c):
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *f;
char ch;
f = fopen("fichier.txt", "a");
if(f==NULL){
printf("Erreur lors de l'ouverture d'un fichier");
exit(1);
}
while((ch=getchar())!=EOF){
fputc(ch, f);
}
fclose(f);
return 0;
}
On le compile
cc -o addlog log.c
On lance ce petit programme et on tape deux lignes :
ligne 1
ligne 2
On laisse tourner notre programme et, sur une autre console on regarde ce qu'il y a dans le fichier.
Mon Feb 17 11:50:59 CET 2025
Mon Feb 17 11:51:01 CET 2025
ligne 1
ligne 2