Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       wordexp,  wordfree  -  Effectuer  l'expansion de mots a la maniere 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 fonctionnalites  pour  la  glibc  (consultez
   feature_test_macros(7)) :

       wordexp(), wordfree() : _XOPEN_SOURCE

DESCRIPTION

       La fonction wordexp() effectue une expansion de type shell de la chaine
       s et retourne le resultat dans la structure pointee par p. Le  type  de
       donnees  wordexp_t  est  une structure qui possede 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  trouves.  Le
       membre we_offs de type size_t est quelquefois (suivant flags, voir plus
       loin) utilise pour indiquer le nombre d'elements  du  tableau  we_wordv
       qui devraient etre remplis initialement avec le caractere NULL.

       La  fonction  wordfree()  libere  la memoire nouvellement allouee. Plus
       precisement, elle ne libere pas son argument  mais  libere  le  tableau
       we_wordv ainsi que les chaines vers lesquelles il pointe.

   L'argument cha^ine
       Puisque  l'expansion  est  effectuee  de  la  meme maniere que le shell
       (consultez sh(1)) sur les parametres d'une commande,  la  chaine  s  ne
       doit  pas  contenir  de  caracteres  qui  seraient  illegaux  dans  les
       parametres d'une commande shell. En particulier, il ne doit pas y avoir
       de  caracteres nouvelle ligne ou |, &, ;, <, >, (, ), {, } non proteges
       en dehors d'un contexte de substitution de commande ou de parametre.

       Si l'argument s  contient  un  mot  qui  debute  par  un  caractere  de
       commentaires  << # >> hors de tous guillemets, il n'est pas specifie si
       ce mot et les suivants sont ignores, ou si le # est considere comme  un
       caractere normal.

   L'expansion
       L'expansion  effectuee  consiste en les etapes suivantes : expansion du
       caractere  tilde  (remplacement  de  ~utilisateur  par  le   repertoire
       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 arithmetique, decoupage de champs,  expansion  des
       caracteres  de  remplacement  (wildcard), suppression des caracteres de
       citation (quotes).

       Le resultat de l'expansion de caracteres speciaux ($@, $*, $#, $?,  $-,
       $$, $!, $0) n'est pas specifie.

       Le   decoupage  des  champs  est  effectue  en  utilisant  la  variable
       d'environnement $IFS. Si elle n'est pas positionnee, les separateurs de
       champs sont l'espace, la tabulation et le caractere nouvelle ligne.

   Le tableau de sortie
       Le  tableau  we_wordv contient les mots trouves, suivi par le caractere
       NULL.

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

       WRDE_APPEND
              Ajouter les mots trouves au  tableau  resultant  d'un  precedent
              appel.

       WRDE_DOOFFS
              Inserer   we_offs  caracteres  initiaux  NULL  dans  le  tableau
              we_wordv (ils ne seront pas  comptes  dans  le  membre  we_wordc
              retourne).

       WRDE_NOCMD
              Ne pas effectuer la substitution de commande.

       WRDE_REUSE
              Le  parametre  p  resulte  d'un  precedent appel a wordexp(), et
              wordfree() n'a pas ete appele. Reutiliser l'espace  de  stockage
              alloue.

       WRDE_SHOWERR
              Normalement,  lors  d'une  substitution  de commande, stderr est
              redirigee vers /dev/null. Ce drapeau specifie que stderr ne sera
              pas redirige.

       WRDE_UNDEF
              Considerer  comme  une  erreur le fait qu'une variable shell non
              definie soit developpee.

VALEUR RENVOY'EE

       Si elle reussit, la fonction renvoie 0. Si elle  echoue,  elle  renvoie
       l'une des cinq valeurs suivantes :

       WRDE_BADCHAR
              Occurrence  illegale  d'un  caractere  nouvelle  ligne  ou  d'un
              caractere parmi |, &, ;, <, >, (, ), {, }.

       WRDE_BADVAL
              Il y a une reference a une variable shell  non  definie,  et  le
              drapeau  WRDE_UNDEF  nous  demande  de  considerer que c'est une
              erreur.

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

       WRDE_NOSPACE
              Plus de memoire disponible.

       WRDE_SYNTAX
              Erreur de syntaxe shell, comme des parentheses ou des guillemets
              non apparies.

VERSIONS

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

CONFORMIT'E

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

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

                                14 juillet 2008                     WORDEXP(3)