Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       glob, globfree - Rechercher un chemin d'accès correspondant à un motif

SYNOPSIS

       #include <glob.h>

       int glob(const char *pattern, int flags,
                int (*errfunc) (const char *epath, int eerrno),
                glob_t *pglob);
       void globfree(glob_t *pglob);

DESCRIPTION

       La  fonction glob() recherche tous les chemins d'accès correspondant au
       motif pattern en utilisant les règles  du  shell  (consultez  glob(7)).
       Aucun   remplacement  de  tilde  ou  substitution  de  paramètre  n'est
       effectué.  Si  vous  avez  besoin  de  ces  fonctionnalités,   utilisez
       wordexp(3).

       La  fonction  globfree()  libère  la mémoire allouée dynamiquement lors
       d'un appel précédent à glob().

       Les résultats d'un appel à  glob()  sont  stockés  dans  une  structure
       pointée  par  pglob.  Cette  structure  est de type glob_t (défini dans
       <glob.h>) et inclut les éléments définis par  POSIX.2  (il  peut  y  en
       avoir plus sous forme d'extension GNU) :

           typedef struct {
               size_t   gl_pathc;    /* Nombre de chemins correspondant  */
               char   **gl_pathv;    /* Liste des chemins correspondant  */
               size_t   gl_offs;     /* Entrées à réserver dans gl_pathv. */
           } glob_t;

       Les résultats sont sauvés dans une zone allouée dynamiquement.

       Le  paramètre  flags  est constitué d'un OU binaire « | » entre zéro ou
       plus des constantes symboliques suivantes, modifiant le comportement de
       glob() :

       GLOB_ERR
              Terminer   dès   qu'une  erreur  se  produit  (par  exemple,  un
              répertoire non lisible). Par défaut, glob()  tente,  malgré  les
              erreurs, de lire tous les répertoires qu'il peut.

       GLOB_MARK
              Ajoute  une barre oblique finale à chaque nom correspondant à un
              répertoire.

       GLOB_NOSORT
              Ne pas trier les chemins d'accès renvoyés. La seule raison  pour
              faire  cela est d'économiser du temps de traitement. Par défaut,
              les chemins d'accès renvoyés sont triés.

       GLOB_DOOFFS
              Réserve pglob->gl_offs points d'entrée au début de la  liste  de
              chaînes   dans   pglob->pathv.   Les  points  d'entrée  réservés
              contiennent des pointeurs NULL.

       GLOB_NOCHECK
              Si aucun motif ne correspond, renvoyer le  motif  original.  Par
              défaut,   glob()   renvoie   GLOB_NOMATCH  s'il  n'y  a  pas  de
              correspondance.

       GLOB_APPEND
              Ajoute les résultats  de  cet  appel  au  tableau  de  résultats
              renvoyé  par  un  appel  précédent à glob(). Ne pas indiquer cet
              attribut lors du premier appel de glob().

       GLOB_NOESCAPE
              Ne pas permettre l'utilisation de barre oblique inverse  (« \ »)
              pour  désactiver  les caractères d'échappement. Normalement, une
              barre oblique  inverse  peut  être  utilisée  pour  échapper  le
              caractère qui le suit, fournissant un mécanisme de désactivation
              du sens particulier des méta-caractères.

       flags peut également utiliser les constantes suivantes,  qui  sont  des
       extensions GNU, non définies dans POSIX.2 :

       GLOB_PERIOD
              Permettre  à  un  point  en  tête de chemin de correspondre à un
              méta-caractère. Par défaut, les méta-caractères ne  peuvent  pas
              correspondre à un point en tête de chemin.

       GLOB_ALTDIRFUNC
              Utiliser    les   fonctions   alternatives   pglob->gl_closedir,
              pglob->gl_readdir,   pglob->gl_opendir,    pglob->gl_lstat    et
              pglob->gl_stat  pour  l'accès au système de fichiers au lieu des
              fonctions normales de bibliothèque.

       GLOB_BRACE
              Développer dans le style csh(1) les expressions de  type  {a,b}.
              Les  expressions entre accolades peuvent être imbriquées. Ainsi,
              par  exemple,  spécifier   le   motif   « {foo/{,cat,dog},bar} »
              retournera  le  même résultat que quatre appels à glob() séparés
              utilisant les chaînes : « foo/ », « foo/cat »,  « foo/dog »,  et
              « bar ».

       GLOB_NOMAGIC
              Si  le motif renvoyé ne contient pas de méta-caractères, il sera
              retourné comme seul mot correspondant, même s'il n'existe pas de
              fichier avec ce nom.

       GLOB_TILDE
              Prendre  en charge l'expansion du tilde. Si un tilde (« ~ ») est
              le seul caractère du motif, ou si un tilde en tête est suivi par
              une barre oblique (« / »), le répertoire personnel de l'appelant
              sera substitué au tilde. Si un tilde en tête est  suivi  par  un
              nom  d'utilisateur  (par exemple, « ~alain/bin », le tilde et le
              nom d'utilisateur sont substitués par le répertoire personnel de
              cet  utilisateur. Si le nom d'utilisateur n'est pas valide ou si
              le  répertoire  personnel  ne  peut  pas  être   déterminé,   la
              substitution n'est pas effectuée.

       GLOB_TILDE_CHECK
              Fournit  un  comportement  similaire  à  celui de GLOB_TILDE. La
              différence est que si le nom d'utilisateur n'est pas valable  ou
              si  le  répertoire  personnel ne peut pas être déterminé, plutôt
              que d'utiliser le  motif  lui-même  comme  nom,  glob()  renvoie
              GLOB_NOMATCH pour indiquer l'erreur.

       GLOB_ONLYDIR
              C'est  une  indication  pour  glob() indiquant que l'appelant ne
              s'intéresse  qu'aux  répertoires  correspondant  au  motif.   Si
              l'implémentation  peut facilement déterminer le type de fichier,
              les fichiers qui  ne  sont  pas  des  répertoires  ne  sont  pas
              renvoyés  à  l'appelant.  Toutefois,  l'appelant  doit  toujours
              vérifier que les fichiers renvoyés sont des répertoires (le  but
              de  cet  attribut  est  simplement  d'optimiser les performances
              lorsque l'appelant ne s'intéresse qu'aux répertoires).

       Si errfunc n'est pas NULL, elle sera appelée en cas d'erreur, avec  les
       arguments  epath  un  pointeur sur le chemin qui a échoué, et eerrno la
       valeur de errno telle qu'elle a été renvoyée par un appel à opendir(3),
       readdir(3)  ou  stat(2). Si errfunc renvoie une valeur non nulle, ou si
       GLOB_ERR est positionné, glob() se terminera après l'appel de errfunc.

       Si glob() réussit complètement, pglob->gl_pathc contient le  nombre  de
       chemins  d'accès correspondants et pglob->gl_pathv contient un pointeur
       sur une liste des chemins. Le premier pointeur après le dernier  chemin
       vaut NULL.

       Il   est  possible  d'appeler  glob()  plusieurs  fois.  Dans  ce  cas,
       l'attribut GLOB_APPEND doit être indiqué dans flags  durant  le  second
       appel et les suivants.

       En  tant  qu'extension  GNU,  le  champ  pglob->gl_flags  contient  les
       attributs  indiqués  liés  par  un   OU   avec   GLOB_MAGCHAR   si   un
       méta-caractère a été trouvé.

VALEUR RENVOYÉE

       S'il  réussit  complètement  glob()  renvoie  zéro.  Les autres valeurs
       renvoyées peuvent être :

       GLOB_NOSPACE
              pas assez de mémoire,

       GLOB_ABORTED
              erreur de lecture,

       GLOB_NOMATCH
              aucune correspondance trouvée.

CONFORMITÉ

       POSIX.2, POSIX.1-2001.

NOTES

       Les membres gl_pathc et gl_offs de la structure glob_t sont des  size_t
       dans  glibc  2.1,  comme  indiqué dans POSIX.2, mais sont déclarés sous
       forme de int dans libc4, libc5 et glibc 2.0.

BOGUES

       La fonction glob() peut échouer  en  cas  d'erreur  dans  un  appel  de
       fonction  sous-jacent,  comme malloc(3) ou opendir(3). Le code d'erreur
       sera alors stocké dans errno.

EXEMPLE

       L'exemple d'utilisation suivant simule la frappe de

           ls -l *.c ../*.c

       dans un shell :

           glob_t globbuf;

           globbuf.gl_offs = 2;
           glob("*.c", GLOB_DOOFS, NULL, &globbuf);
           glob("../*.c", GLOB_DOOFS | GLOB_APPEND, NULL, &globbuf);
           globbuf.gl_pathv[0] = "ls";
           globbuf.gl_pathv[1] = "-l";
           execvp("ls", &globbuf.gl_pathv[0]);

VOIR AUSSI

       ls(1), sh(1),  stat(2),  exec(3),  fnmatch(3),  malloc(3),  opendir(3),
       readdir(3), wordexp(3), glob(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).  Florentin
       Duneau et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».