Le man de la fonction open
🎯 Duplique une chaîne de caractères en allouant dynamiquement la mémoire nécessaire pour stocker une copie de la chaîne
⚙️ Prototype de open
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
🧑💻 Fonctionnement de open
La fonction open
est utilisée pour ouvrir un fichier. Elle prend en paramètre le chemin du fichier (pathname
) et un ensemble de flags
qui déterminent comment le fichier doit être ouvert (lecture, écriture, etc.). La fonction retourne un descripteur de fichier, qui est un entier représentant le fichier ouvert. Ce descripteur est ensuite utilisé pour lire, écrire ou manipuler le fichier. Si l’ouverture échoue, open
retourne -1
et définit errno
pour indiquer l’erreur.
Paramètres :
pathname
: Pointeur vers le chemin du fichier à ouvrir.flags
: Indicateurs qui contrôlent la manière dont le fichier est ouvert. Les valeurs communes incluent :O_RDONLY
: Ouvre le fichier en lecture seule.O_WRONLY
: Ouvre le fichier en écriture seule.O_RDWR
: Ouvre le fichier en lecture et écriture.O_CREAT
: Crée le fichier s’il n’existe pas encore (nécessite un troisième argumentmode
).O_TRUNC
: Tronque le fichier à une longueur de 0 s’il existe déjà.O_APPEND
: Toutes les écritures dans le fichier se feront à la fin.
mode
(facultatif) : Spécifie les permissions du fichier siO_CREAT
est utilisé. C’est un masque d’octets comme0644
qui définit les permissions utilisateur, groupe et autres.
Retour :
- Un descripteur de fichier, c’est-à-dire un entier non négatif, en cas de succès.
-1
en cas d’échec, eterrno
est défini pour indiquer l’erreur.
Remarques :
- La fonction
open
est fondamentale pour toute opération d’entrée/sortie sur des fichiers en C, que ce soit pour la lecture, l’écriture, ou la modification de fichiers. - Attention : Lorsque vous ouvrez un fichier, n’oubliez pas de le fermer avec
close()
une fois que vous avez terminé de l’utiliser, pour éviter les fuites de descripteurs de fichiers.
✨ Exemple d'utilisation de open
Ouverture d’un fichier pour lecture et écriture .
👉 Ici, open
est utilisé pour ouvrir ou créer un fichier appelé "output.txt"
en mode lecture et écriture, en le créant si nécessaire et en le tronquant s’il existe déjà.
int fd = open("output.txt", O_RDWR | O_CREAT | O_TRUNC, 0644);
if (fd == -1) {
perror("Erreur lors de l'ouverture ou de la création du fichier");
return 1;
}
// Le fichier est maintenant ouvert et prêt pour la lecture/écriture.
close(fd); // N'oubliez pas de fermer le fichier après utilisation.
Voir aussi :
strcpy
: Copie une chaîne de caractères dans une autre.malloc
: Alloue de la mémoire dynamique.free
: Libère la mémoire allouée dynamiquement.strlen
: Calcule la longueur d’une chaîne de caractères.strncpy
: Copie un nombre limité de caractères d’une chaîne dans une autre.