Chaque canal porte un numéro unique, certains ont des noms prédéfinis. Celui rattaché par défaut au clavier, appelé 
canal  d’entrée  standard,  porte  le  numéro  0  (si  tant  est  que  0  soit  un  nombre)  et  s’appelle  STDIN.  Celui  qui  fait 
transiter  les  informations  à  afficher  vers  l’écran  (ou  plutôt  le  pilote  ou  sous­système  d’affichage),  appelé  canal  de 
sortie standard porte le numéro 1 et s’appelle STDOUT. Il en existe un troisième appelé STDERR et portant le numéro 
2, chargé de véhiculer les messages d’erreur. 
La notion de canal est flagrante avec certains systèmes d’exploitation, surtout Unix qui en use et en abuse. Windows 
hérite lui­même de cette notion, exploitable simplement au travers de l’interpréteur de commandes d’origine DOS. En 
C, il est possible d’utiliser les fonctions de lecture et d’écriture de fichiers avec ces trois canaux. 
Vous disposez de tous les canaux au­delà du numéro deux, donc 3 et suivants pour vos propres fichiers. L’ouverture 
d’un  fichier  consiste  donc,  directement  ou  indirectement,  à  rattacher  un  canal  à  un  fichier.  Les  données  que  vous 
écrirez  dans  le  fichier  iront  de  votre  programme  vers  le  fichier  par  ce  canal,  et  celles  que  vous  lirez  du  fichier  au 
programme toujours par ce canal. 
Les notations algorithmiques peuvent varier sur ce point. Certaines notations reprennent la syntaxe d’un langage de 
type Basic ou Visual Basic, dans lequel vous devez indiquer vous­même quel numéro de canal utiliser à l’ouverture du 
fichier.  D’autres reprennent une syntaxe issue du C où c’est la fonction C ouvrant le fichier qui choisit un canal, et 
vous récupérez un identifiant de fichier sous forme de variable. Cet identifiant est le nom logique du fichier au sein du 
programme. C’est cette notation qui est généralement préférable en algorithmique. 
  En C, une fonction d’ouverture de fichier retourne une variable de type FILE qui est en fait un type structuré 
contenant  diverses  informations  dont  un  entier  contenant  un  numéro  qui  se  révèle  être  le  numéro  du 
descripteur  de  fichiers  au  niveau  du  système  d’exploitation.  Des  limites  sont  définies  au  sein  du  système.  Sous 
Linux,  il  ne  peut  y  avoir  par  défaut  plus  de  1024*1024  fichiers  ouverts,  mais  en  pratique  1024  par  processus 
(programme). Ca devrait suffire, cependant divers mécanismes permettent d’aller encore plus loin, généralement 
jusqu’à 8192. Au­delà, ça devient très très lourd. Un nom logique de fichier est donc un enregistrement de type 
structuré. 
c. Les modes d’ouverture 
En ouvrant un fichier, il faut indiquer comment vous souhaitez y accéder. Souhaitez­vous seulement lire son contenu, 
y écrire où vous voulez, ou rajouter des lignes à la fin ? 
q Enlecture, vous avez un accès en lecture seule au fichier. Vous ne pouvez pas y écrire. Vous pouvez vous y 
déplacer, retourner au début, lire tout ce que vous voulez, mais c’est tout. 
q Enécriture, parfois nommé lecture/écriture, vous pouvez modifier n’importe quelle partie du fichier, écrire où 
vous voulez, écraser vos anciennes données qui seront donc définitivement perdues (vive les sauvegardes). 
Attention à la casse si vos enregistrements sont de taille variable dans un fichier texte ! Vous pouvez aussi 
lire le contenu du fichier. 
q Enajout (append), vous ne pouvez pas lire le fichier, mais uniquement rajouter des données après la fin de 
celui­ci, comme rajouter un enregistrement ou quelques octets tout au bout. Vous ne pouvez pas modifier les 
données qui y sont déjà écrites. 
  Le problème principal que vous rencontrerez quand vous utiliserez des enregistrements dans un fichier, c’est 
qu’il  n’y  a  aucun  moyen  d’effacer  un  enregistrement,  donc  de  réduire  la  taille  de  celui­ci.  Vous  devrez  donc 
ruser,  utiliser  un  indicateur  particulier  pour  indiquer  un  enregistrement  supprimé,  et  prévoir  des  traitements  de 
réorganisation des fichiers (réindexation, suppression des lignes, listes chaînées, etc) en passant probablement 
par des fichiers temporaires, ou tout charger en mémoire, puis réécrire seulement les bonnes valeurs… 
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
154
Précédent

- 154/220

Suivant