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 argument mode).
    • 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 si O_CREAT est utilisé. C’est un masque d’octets comme 0644 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, et errno 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.
Retour en haut