Man page - glob(3)

Packages contains this manual

Available languages:

en fr pl ja ru de

Manual

glob

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ATTRIBUTS
STANDARDS
HISTORIQUE
NOTES
BOGUES
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

glob, globfree - Rechercher un chemin d’accùs correspondant à un motif

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <glob.h>

int glob(const char *restrict pattern , int flags ,
int (*
errfunc )(const char * epath , int eerrno ),
glob_t *restrict
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, et

GLOB_NOMATCH

aucune correspondance trouvée.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3891684-1.png

Dans le tableau ci-dessus, utent dans race:utent signifie que si des fonctions parmi setutent (3), getutent (3) ou endutent (3) sont utilisĂ©es en parallĂšle dans diffĂ©rents threads d’un programme, des situations de compĂ©tition entre donnĂ©es pourraient apparaĂźtre. glob () appelle ces fonctions, nous utilisons donc race:utent pour le rappeler aux utilisateurs.

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001, POSIX.2.

NOTES

Les éléments de la structure gl_pathc et gl_offs sont déclarés comme des size_t dans glibc 2.1, comme préconisé dans POSIX.2, mais sont déclarés sous forme de int dans 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 .

EXEMPLES

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)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .