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

NOM

       wordexp,  wordfree  -  Effectuer  l'expansion de mots à la manière d'un
       shell POSIX

SYNOPSIS

       #include <wordexp.h>

       int wordexp(const char *s, wordexp_t *p, int flags);

       void wordfree(wordexp_t *p);

   Exigences de macros de test de fonctionnalités  pour  la  glibc  (consultez
   feature_test_macros(7)) :

       wordexp(), wordfree() : _XOPEN_SOURCE

DESCRIPTION

       La fonction wordexp() effectue une expansion de type shell de la chaîne
       s et retourne le résultat dans la structure pointée par p. Le  type  de
       données  wordexp_t  est  une structure qui possède au moins les membres
       we_wordc, we_wordv, et we_offs. Le membre we_wordc est de  type  size_t
       et  donne  le  nombre de mots dans l'expansion de s. Le membre we_wordv
       est de type char ** et pointe sur  le  tableau  des  mots  trouvés.  Le
       membre we_offs de type size_t est quelquefois (suivant flags, voir plus
       loin) utilisé pour indiquer le nombre d'éléments  du  tableau  we_wordv
       qui devraient être remplis initialement avec le caractère NULL.

       La  fonction  wordfree()  libère  la mémoire nouvellement allouée. Plus
       précisément, elle ne libère pas son argument  mais  libère  le  tableau
       we_wordv ainsi que les chaînes vers lesquelles il pointe.

   L'argument chaîne
       Puisque  l'expansion  est  effectuée  de  la  même manière que le shell
       (consultez sh(1)) sur les paramètres d'une commande,  la  chaîne  s  ne
       doit  pas  contenir  de  caractères  qui  seraient  illégaux  dans  les
       paramètres d'une commande shell. En particulier, il ne doit pas y avoir
       de  caractères nouvelle ligne ou |, &, ;, <, >, (, ), {, } non protégés
       en dehors d'un contexte de substitution de commande ou de paramètre.

       Si l'argument s  contient  un  mot  qui  débute  par  un  caractère  de
       commentaires « # » hors de tous guillemets, il n'est pas spécifié si ce
       mot et les suivants sont ignorés, ou si le #  est  considéré  comme  un
       caractère normal.

   L'expansion
       L'expansion  effectuée  consiste en les étapes suivantes : expansion du
       caractère  tilde  (remplacement  de  ~utilisateur  par  le   répertoire
       personnel  de l'utilisateur), substitution de variable (remplacement de
       $FOO par la valeur de la variable d'environnement FOO), substitution de
       commande (remplacement de $(commande) ou `commande` par la sortie de la
       commande), expansion arithmétique, découpage de champs,  expansion  des
       caractères  de  remplacement  (wildcard), suppression des caractères de
       citation (quotes).

       Le résultat de l'expansion de caractères spéciaux ($@, $*, $#, $?,  $-,
       $$, $!, $0) n'est pas spécifié.

       Le   découpage  des  champs  est  effectué  en  utilisant  la  variable
       d'environnement $IFS. Si elle n'est pas positionnée, les séparateurs de
       champs sont l'espace, la tabulation et le caractère nouvelle ligne.

   Le tableau de sortie
       Le  tableau we_wordv contient les mots trouvés, suivis par le caractère
       NULL.

   L'argument flags
       L'argument flag est un OU inclusif bit à bit des valeurs suivantes :

       WRDE_APPEND
              Ajouter les mots trouvés au  tableau  résultant  d'un  précédent
              appel.

       WRDE_DOOFFS
              Insérer   we_offs  caractères  initiaux  NULL  dans  le  tableau
              we_wordv (ils ne seront pas  comptés  dans  le  membre  we_wordc
              retourné).

       WRDE_NOCMD
              Ne pas effectuer la substitution de commande.

       WRDE_REUSE
              Le  paramètre  p  résulte  d'un  précédent appel à wordexp(), et
              wordfree() n'a pas été appelé. Réutiliser l'espace  de  stockage
              alloué.

       WRDE_SHOWERR
              Normalement,  lors  d'une  substitution  de commande, stderr est
              redirigée vers /dev/null. Ce drapeau spécifie que stderr ne sera
              pas redirigé.

       WRDE_UNDEF
              Considérer  comme  une  erreur le fait qu'une variable shell non
              définie soit développée.

VALEUR RENVOYÉE

       Si elle réussit, la fonction renvoie 0. Si elle  échoue,  elle  renvoie
       l'une des cinq valeurs suivantes :

       WRDE_BADCHAR
              Occurrence  illégale  d'un  caractère  nouvelle  ligne  ou  d'un
              caractère parmi |, &, ;, <, >, (, ), {, }.

       WRDE_BADVAL
              Il y a une référence à une variable shell  non  définie,  et  le
              drapeau  WRDE_UNDEF  nous  demande  de  considérer que c'est une
              erreur.

       WRDE_CMDSUB
              Une  substitution  de  commande  est  apparue,  et  le   drapeau
              WRDE_NOCMD nous demande de considérer que c'est une erreur.

       WRDE_NOSPACE
              Plus de mémoire disponible.

       WRDE_SYNTAX
              Erreur de syntaxe shell, comme des parenthèses ou des guillemets
              non appariés.

VERSIONS

       wordexp()  et  wordfree()  sont  fournies  par  la  glibc   depuis   la
       version 2.1.

CONFORMITÉ

       POSIX.1-2001.

EXEMPLE

       La sortie du programme d'exemple suivant est approximativement celle de
       « ls [a-c]*.c ».

       #include <stdio.h>
       #include <stdlib.h>
       #include <wordexp.h>

       int
       main(int argc, char **argv)
       {
           wordexp_t p;
           char **w;
           int i;

           wordexp("[a-c]*.c", &p, 0);
           w = p.we_wordv;
           for (i = 0; i < p.we_wordc; i++)
               printf("%s\n", w[i]);
           wordfree(&p);
           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       fnmatch(3), glob(3)

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/>.

       Alain  Portal   <URL:http://manpagesfr.free.fr/> (2004-2006).   Nicolas
       François 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> ».

                                14 juillet 2008                     WORDEXP(3)