Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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)