Man page - wordfree(3)

Packages contains this manual

Available languages:

en fr ja ru

Manual

wordexp

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
L’argument chaüne
L’expansion
Le tableau de sortie
Le paramĂštre des attributs
VALEUR RENVOYÉE
ATTRIBUTS
STANDARDS
HISTORIQUE
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

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

BIBLIOTHÈQUE

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

SYNOPSIS

#include <wordexp.h>

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

Exigences de macros de test de fonctionnalités pour la glibc (consulter 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.

Le paramĂštre des attributs

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 . Cet attribut 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

En cas de succĂšs, wordexp () renvoie 0 . En cas d’échec, wordexp () une des valeurs suivantes diffĂ©rentes de zĂ©ro :
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 l’attribut WRDE_UNDEF nous demande de considĂ©rer que c’est une erreur.

WRDE_CMDSUB

Une substitution de commande est requise, lais l’attribut WRDE_NOCMD nous demande de considĂ©rer que c’est une erreur.

WRDE_NOSPACE

Plus assez de mémoire.

WRDE_SYNTAX

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

ATTRIBUTS

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

Image grohtml-3870315-1.png

Dans le tableau ci-dessus, utent dans race:utent signifie que si unedes fonctions setutent (3), getutent (3) ou endutent (3) est utilisĂ©e en parallĂšle dans diffĂ©rents threads d’un programme, des conditions de compĂ©tition de donnĂ©es peuvent survenir. wordexp () appelle ces fonctions, aussi race:utent est utilisĂ© pour le rappeler aux utilisateurs.

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001. glibc 2.1.

EXEMPLES

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(void)
{
wordexp_t p;
char **w;
wordexp("[a-c]*.c", &p, 0);
w = p.we_wordv;
for (size_t i = 0; i < p.we_wordc; i++)
printf("%s\n", w[i]);
wordfree(&p);
exit(EXIT_SUCCESS);
}

VOIR AUSSI

fnmatch (3), glob (3)

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 .