FTW(3)             Manuel du programmeur Linux             FTW(3)


NOM
       ftw - Parcours d'arborescence de fichiers.

SYNOPSIS
       #include <ftw.h>

       int ftw (const char *directory, int (*funcptr )(const char
       *file, struct stat *sb, int flag), int depth);

DESCRIPTION
       La fonction ftw() parcourt la hiérarchie de fichiers  com­
       mençant au répertoire directory.  Pour chaque fichier ren­
       contré, elle appelle funcptr avec  le  chemin  d'accès  du
       fichier  relativement  à  directory,  un  pointeur sur une
       structure stat(2), et un entier dont la valeur signifie
              FTW_F     Fichier normal
              FTW_D     Répertoire
              FTW_NS    Echec de stat sur cet élément
              FTW_DNR   Répertoire non lisible
       ATTENTION : Tout ce qui n'est  pas  un  répertoire  (liens
       symboliques, ...)  possède l'attribut FTW_F.

       ftw() s'appelle lui-même recursivement pour parcourir tous
       les répertoires trouvés. Afin d'éviter d'utiliser tous les
       descripteurs de fichiers disponibles pour le programme, la
       profondeur depth limite le nombre de  répertoires  ouverts
       simultanément.  Quand cette profondeur est atteinte, ftw()
       va ralentir, car des répertoires devront être fermés  puis
       réouverts.

       Pour arrêter le parcours des fichiers, la fonction funcptr
       peut renvoyer  une  valeur  non-nulle,  qui  deviendra  la
       valeur  de  retour  de  ftw().   Sinon,  ftw()  continuera
       jusqu'à atteindre la fin du parcours de l'arbre,  et  ren­
       verra zéro, ou jusqu'à ce que se produise une erreur comme
       celles de malloc(3) et renverra -1.

       Comme ftw() utilise des  structures  de  données  allouées
       dynamiquement, la seule manière propre de sortir d'un par­
       cours est de renvoyer une valeur non nulle.  Pour  traiter
       les  interruptions,  par exemple, notez le numéro d'inter­
       ruption  survenue  et  renvoyez  une  valeur  non   nulle.
       N'utilisez  jamais  longjmp(3) à moins que le programme ne
       soit prêt à se terminer.

CONFORMITÉ
       AES, SVID2, SVID3, XPG2, XPG3, XPG4

VOIR AUSSI
       stat(2)


TRADUCTION
       Christophe Blaess, 1997.



Linux                    11 Décembre 1997                       1