Fichiers et flux
Un programme communique avec l'environnement cible en lisant et en écrivant dans des fichiers. Un fichier peut être :
Un jeu de données que vous pouvez lire et écrire à plusieurs reprises.
Un flux d'octets générés par un programme (tel qu'un pipeline).
Un flux d'octets reçus ou envoyés à un périphérique.
Les deux derniers éléments sont des fichiers interactifs. Les fichiers sont généralement le principal moyen d'interaction avec un programme. Vous manipulez tous ces types de fichiers de la même façon : en appelant des fonctions de bibliothèque. Vous incluez l'en-tête standard STDIO.H pour déclarer la plupart de ces fonctions.
Pour pouvoir exécuter un grand nombre d'opérations sur un fichier, celui-ci doit être ouvert. L'ouverture d'un fichier l'associe à un flux, une structure de données dans la bibliothèque C standard qui ne tient pas compte de nombreuses différences entre les fichiers de différents types. La bibliothèque gère l'état de chaque flux dans un objet de type FILE.
L'environnement cible ouvre trois fichiers avant le démarrage du programme. Vous pouvez ouvrir un fichier en appelant la fonction fopen
de bibliothèque, _wfopen
avec deux arguments. (La fopen
fonction a été déconseillée, utilisez fopen_s
, _wfopen_s
à la place.) Le premier argument est un nom de fichier. Le deuxième argument est une chaîne C, qui indique :
Si vous prévoyez de lire les données du fichier, d'y écrire des données ou les deux.
Que vous souhaitiez générer un nouveau contenu pour le fichier (ou créer un fichier s’il n’existait pas précédemment) ou laisser le contenu existant en place.
Si l'écriture dans un fichier peut modifier le contenu existant ou doit uniquement ajouter des octets à la fin du fichier.
Si vous voulez manipuler un flux de texte ou un flux binaire.
Une fois le fichier ouvert, vous pouvez déterminer si le flux est orienté octet (un flux d'octets) ou orienté large (un flux large). Un flux est initialement indépendant. L'appel de certaines fonctions pour s'exécuter sur le flux le rend orienté octet, alors que certaines autres fonctions le rendent orienté large. Une fois établi, un flux conserve son orientation jusqu’à ce qu’il soit fermé par un appel à fclose
ou freopen
.
© 1989-2001 par P.J. Plauger et Jim Brodie. Tous droits réservés.
Voir aussi
Flux texte et binaires
Octets et flux larges
Contrôle des flux
États de flux