Perform word expansion on the string words, putting the result in
a newly allocated vector, and store the size and address of this vector
into *word-vector-ptr . The argument flags is a
combination of bit flags; see Flags for Wordexp, for details of
the flags.
You shouldn't use any of the characters |&;<> in the string
words unless they are quoted; likewise for newline. If you use
these characters unquoted, you will get the WRDE_BADCHAR error
code. Don't use parentheses or braces unless they are quoted or part of
a word expansion construct. If you use quotation characters '"` ,
they should come in pairs that balance.
The results of word expansion are a sequence of words. The function
wordexp allocates a string for each resulting word, then
allocates a vector of type char ** to store the addresses of
these strings. The last element of the vector is a null pointer.
This vector is called the word vector.
To return this vector, wordexp stores both its address and its
length (number of elements, not counting the terminating null pointer)
into *word-vector-ptr .
If wordexp succeeds, it returns 0. Otherwise, it returns one
of these error codes:
WRDE_BADCHAR
- The input string words contains an unquoted invalid character such
as
| .
WRDE_BADVAL
- The input string refers to an undefined shell variable, and you used the flag
WRDE_UNDEF to forbid such references.
WRDE_CMDSUB
- The input string uses command substitution, and you used the flag
WRDE_NOCMD to forbid command substitution.
WRDE_NOSPACE
- It was impossible to allocate memory to hold the result. In this case,
wordexp can store part of the results--as much as it could
allocate room for.
WRDE_SYNTAX
- There was a syntax error in the input string. For example, an unmatched
quoting character is a syntax error.
|