Vous avez besoin d’un handle pour toucher les données sur le disque. En C, ce handle est un pointeur renvoyé par fopen. Vous spécifiez un mode, récupérez un pointeur et l’utilisez pour diffuser des données entrantes ou sortantes. Les modes les plus courants sont « r » pour la lecture, « w » pour l’écriture et « a » pour l’ajout. Si vous vous trompez, vous risquez de perdre des données ou de faire planter votre programme.
Considérons une tâche simple : écrire les nombres de 1 à 10 dans un fichier.
Ce code ouvre un fichier nommé out en utilisant le mode w. C’est une écriture destructrice. Si out n’existe pas, le système le crée. S’il existe, l’ancien contenu est effacé et remplacé. La variable f contient le pointeur de fichier. Vous utilisez ce pointeur pour toutes les opérations ultérieures. Si le fichier ne peut pas être ouvert (problèmes d’autorisations, disque plein ou chemin inexistant), « f » devient « NULL ».
La fonction de sortie ici est fprintf. Cela fonctionne exactement comme printf, mais vous transmettez le pointeur de fichier comme premier argument. Une fois que vous avez terminé, fclose libère la ressource.
Gestion des erreurs de fichiers dans Main
Cet extrait est le premier de la série à renvoyer un code d’erreur de « main ». Lorsque fopen échoue, f contient une valeur nulle. En C, zéro est évalué à faux. Tout le reste est vrai. L’opérateur ! inverse cette logique booléenne.
if (!f) vérifie si le pointeur est nul. C’est équivalent à « if (f == 0) », mais le premier est l’idiome standard. Si la condition est vraie, le programme renvoie 1.
Sur les systèmes UNIX, vous pouvez vérifier cet état de sortie directement à partir de la ligne de commande. Il vous indique si le script ou le programme s’est exécuté avec succès ou s’il a heurté un mur. Savoir comment détecter ces erreurs le plus tôt possible permet d’économiser des heures de débogage plus tard.
Pourquoi nous embêtons-nous avec les codes de retour alors que nous pourrions simplement planter ? Parce qu’un échec contrôlé vaut mieux qu’un comportement indéfini. Vous pouvez enregistrer l’erreur, avertir l’utilisateur ou réessayer. Laisser le programme mourir en silence est une ingénierie paresseuse.
La beauté de cette approche réside dans sa simplicité. Vous ouvrez. Vous vérifiez. Vous écrivez. Vous fermez. Pas de magie. Aucun état caché. Juste un pointeur et un fichier.
Mais que se passe-t-il si vous avez besoin de lire ce que vous venez d’écrire ? Ou ajouter à un journal existant sans détruire l’historique ? La chaîne de mode change tout. r laisse le fichier tranquille. a ajoute à la fin. w le souffle. Choisissez avec soin.

















