Fichiers en C
Un système de fichier est composé de...fichiers. La libc
propose une grande variété de fonction permettant de les manipuler.
Dans le monde unix, un fichier peut être beaucoup de choses. Nous y reviendrons. Pour l'instant nous nous contenterons de manipuler les éléments les plus représentatifs d'un système de fichiers :
- les fichiers "réguliers" (ie composés d'une suite d'octets) stockant des données texte (comme des codes sources), binaire (comme des images) ou des fichiers exécutables
- les dossiers qui organisent hiérarchiquement le système de fichier.
Contrôle du système de fichier
Les fichiers <unistd.h>
et <sys/stat.h>
définissent des fonctions permettant de contrôler le système de fichier.
Certaines fonctions permettent de controller le dossier courant du programme C :
TBD getcwd : comment est stocké le résultat et le type de retour.
D'autres de créer ou de supprimer des dossiers :
- mkdir
- rmdir
Et enfin les dernières les permissions des fichiers et si besoin les modifier :
chmod
stat
TBD stat et mkdir pour check et créer un dossier.
Structure FILE
Un fichier "régulier"
Bufferisé pour la rapidité : attention au flush.
Entrées et sorties formatées
- fprintf
- fscanf
stdin/out
test avec un PID dun autre process et envoie du texte dans le stdin d'au autre process faire avec 1 fichier C et une commande, puis avec 2 fichiers C.
TBD
aussi getwchar
?
#include <stdio.h>
// ...
while ((c = getchar()) != EOF) {
putchar(c);
}
#include <stdio.h>
FILE *fp = stdin; // ou tout autre fichier
char c;
// ...
while ((c = getc(fp)) != EOF) {
putc(c, stdout);
}