Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
glob, globfree - Rechercher un chemin d'acces correspondant a 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'acces correspondant au
motif pattern en utilisant les regles du shell (consultez glob(7)).
Aucun remplacement de tilde ou substitution de parametre n'est
effectue. Si vous avez besoin de ces fonctionnalites, consultez
wordexp(3).
La fonction globfree() libere la memoire allouee dynamiquement lors
d'un appel precedent a glob().
Les resultats d'un appel a glob() sont stockes dans une structure
pointee par pglob. Cette structure est de type glob_t (defini dans
<glob.h>) et inclut les elements definis 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; /* Entrees a reserver dans gl_pathv. */
} glob_t;
Les resultats sont sauves dans une zone allouee dynamiquement.
Le parametre flags est constitue d'un OU binaire << | >> entre zero ou
plus des constantes symboliques suivantes, modifiant le comportement de
glob() :
GLOB_ERR
Terminer des qu'une erreur se produit (par exemple, un
repertoire non lisible). Par defaut, glob() tente, malgre les
erreurs, de lire tous les repertoires qu'il peut.
GLOB_MARK
Ajoute une barre oblique finale a chaque nom correspondant a un
repertoire.
GLOB_NOSORT
Ne pas trier les chemins d'acces renvoyes. La seule raison pour
faire cela est d'economiser du temps de traitement. Par defaut,
les chemins d'acces renvoyes sont tries.
GLOB_DOOFFS
Reserve pglob->gl_offs points d'entree au debut de la liste de
chaines dans pglob->pathv. Les points d'entree reserves
contiennent des pointeurs NULL.
GLOB_NOCHECK
Si aucun motif ne correspond, renvoyer le motif original. Par
defaut, glob() renvoie GLOB_NOMATCH s'il n'y a pas de
correspondance.
GLOB_APPEND
Ajoute les resultats de cet appel au tableau de resultats
renvoye par un appel precedent a glob(). Ne pas indiquer cet
attribut lors du premier appel de glob().
GLOB_NOESCAPE
Ne pas permettre l'utilisation des barres contre oblique
(<< \ >>) pour desactiver les caracteres d'echappement.
Normalement, une contre oblique peut etre utilisee pour echapper
le caractere qui le suit, fournissant un mecanisme de
desactivation du sens particulier des meta-caracteres.
flags peut egalement utiliser les constantes suivantes, qui sont des
extensions GNU, non definies dans POSIX.2 :
GLOB_PERIOD
Permettre a un point en tete de chemin de correspondre a un
meta-caractere. Par defaut, les meta-caracteres ne peuvent pas
correspondre a un point en tete 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'acces au systeme de fichiers au lieu des
fonctions normales de bibliotheque.
GLOB_BRACE
Developper dans le style csh(1) les expressions de type {a,b}.
Les expressions entre accolades peuvent etre imbriquees. Ainsi,
par exemple, specifier le motif << {foo/{,cat,dog},bar} >>
retournera le meme resultat que quatre appels a glob() separes
utilisant les chaines : << foo/ >>, << foo/cat >>,
<< foo/dog >>, et << bar >>.
GLOB_NOMAGIC
Si le motif renvoye ne contient pas de meta-caracteres, il sera
retourne comme seul mot correspondant, meme 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 caractere du motif, ou si un tilde en tete est suivi
par une barre oblique (<< / >>), le repertoire personnel de
l'appelant sera substitue au tilde. Si un tilde en tete est
suivi par un nom d'utilisateur (par exemple, << ~alain/bin >>,
le tilde et le nom d'utilisateur sont substitues par le
repertoire personnel de cet utilisateur. Si le nom d'utilisateur
n'est pas valide ou si le repertoire personnel ne peut pas etre
determine, la substitution n'est pas effectuee.
GLOB_TILDE_CHECK
Fournit un comportement similaire a celui de GLOB_TILDE. La
difference est que si le nom d'utilisateur n'est pas valable ou
si le repertoire personnel ne peut pas etre determine, plutot
que d'utiliser le motif lui-meme comme nom, glob() renvoie
GLOB_NOMATCH pour indiquer l'erreur.
GLOB_ONLYDIR
C'est une indication pour glob() indiquant que l'appelant ne
s'interesse qu'aux repertoires correspondant au motif. Si
l'implementation peut facilement determiner le type de fichier,
les fichiers qui ne sont pas des repertoires ne sont pas
renvoyes a l'appelant. Toutefois, l'appelant doit toujours
verifier que les fichiers renvoyes sont des repertoires. (Le but
de cet attribut est simplement d'optimiser les performances
lorsque l'appelant ne s'interesse qu'aux repertoires.)
Si errfunc n'est pas NULL, elle sera appelee en cas d'erreur, avec les
arguments epath un pointeur sur le chemin qui a echoue, et eerrno la
valeur de errno telle qu'elle a ete renvoyee par un appel a opendir(3),
readdir(3) ou stat(2). Si errfunc renvoie une valeur non nulle, ou si
GLOB_ERR est positionne, glob() se terminera apres l'appel de errfunc.
Si glob() reussit completement, pglob->gl_pathc contient le nombre de
chemins d'acces correspondants et pglob->gl_pathv contient un pointeur
sur une liste des chemins. Le premier pointeur apres le dernier chemin
vaut NULL.
Il est possible d'appeler glob() plusieurs fois. Dans ce cas,
l'attribut GLOB_APPEND doit etre indique dans flags durant le second
appel et les suivants.
En tant qu'extension GNU, le champ pglob->gl_flags contient les
attributs indiques lies par un OU avec GLOB_MAGCHAR si un
meta-caractere a ete trouve.
VALEUR RENVOY'EE
S'il reussit completement glob() renvoie zero. Les autres valeurs
renvoyees peuvent etre :
GLOB_NOSPACE
pas assez de memoire,
GLOB_ABORTED
erreur de lecture,
GLOB_NOMATCH
aucune correspondance trouvee.
CONFORMIT'E
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 indique dans POSIX.2, mais sont declares sous
forme de int dans libc4, libc5 et glibc 2.0.
BOGUES
La fonction glob() peut echouer en cas d'erreur dans un appel de
fonction sous-jacent, comme malloc(3) ou opendir(3). Le code d'erreur
sera alors stocke 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.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe 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'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.