:man| Alphabetical   Categories   About us 
 
WORDEXP (3) | C library functions | Unix Manual Pages | :man

NAME

wordexp - "perform shell-style word expansions"

CONTENTS

Library
Synopsis
Description
Implementation Notes
Return Values
Environment
Examples
Diagnostics
See Also
Standards
Bugs

LIBRARY


.Lb libc

SYNOPSIS


.In wordexp.h int wordexp "const char * restrict words" "wordexp_t * restrict we" "int flags" void wordfree "wordexp_t *we"

DESCRIPTION

The wordexp function performs shell-style word expansion on words and places the list of words into the we_wordv member of we, and the number of words into we_wordc.

The flags argument is the bitwise inclusive OR of any of the following constants:

WRDE_APPEND Append the words to those generated by a previous call to wordexp.
WRDE_DOOFFS As many NULL pointers as are specified by the we_offs member of we are added to the front of we_wordv.
WRDE_NOCMD Disallow command substitution in words. See the note in BUGS before using this.
WRDE_REUSE The we argument was passed to a previous successful call to wordexp but has not been passed to wordfree. The implementation may reuse the space allocated to it.
WRDE_SHOWERR Do not redirect shell error messages to /dev/null.
WRDE_UNDEF Report error on an attempt to expand an undefined shell variable.

The
.Vt wordexp_t structure is defined in
.In wordexp.h as:
typedef struct {
size_t we_wordc; /* count of words matched */
char **we_wordv;/* pointer to list of words */
size_t we_offs; /* slots to reserve in we_wordv */
} wordexp_t;

The wordfree function frees the memory allocated by wordexp.

IMPLEMENTATION NOTES

The wordexp function is implemented as a wrapper around the undocumented wordexp shell built-in command.

RETURN VALUES

The wordexp function returns zero if successful, otherwise it returns one of the following error codes:
WRDE_BADCHAR The words argument contains one of the following unquoted characters: <newline>, ‘|’, ‘&’, ‘;’, ‘<’, ‘>’, ‘(’, ‘)’, ‘{’, ‘}’.
WRDE_BADVAL An attempt was made to expand an undefined shell variable and WRDE_UNDEF is set in flags.
WRDE_CMDSUB An attempt was made to use command substitution and WRDE_NOCMD is set in flags.
WRDE_NOSPACE Not enough memory to store the result.
WRDE_SYNTAX Shell syntax error in words.

The wordfree function returns no value.

ENVIRONMENT

IFS Field separator.

EXAMPLES

Invoke the editor on all .c files in the current directory and /etc/motd (error checking omitted):
wordexp_t we;


wordexp("${EDITOR:-vi} *.c /etc/motd", &we, 0);
execvp(we->we_wordv[0], we->we_wordv);

DIAGNOSTICS

Diagnostic messages from the shell are written to the standard error output if WRDE_SHOWERR is set in flags.

SEE ALSO

sh(1), fnmatch(3), glob(3), popen(3), system(3)

STANDARDS

BUGS

 
Created by Blin Media, 2008-2013