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