The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### NAME

> wordexp.h - word-expansion types

#### SYNOPSIS

> `#include <wordexp.h>`

#### DESCRIPTION

> The <wordexp.h> header shall define the structures and symbolic constants used by the wordexp() and wordfree() functions.

> The <wordexp.h> header shall define the wordexp_t structure type, which shall include at least the following members:

>     size_t   we_wordc  Count of words matched by words.
>     char   **we_wordv  Pointer to list of expanded words.
>     size_t   we_offs   Slots to reserve at the beginning of we_wordv.

> The <wordexp.h> header shall define the following symbolic constants for use as flags for the wordexp() function:

> WRDE_APPEND
>   Append words to those previously generated.
> WRDE_DOOFFS
>   Number of null pointers to prepend to we_wordv.
> WRDE_NOCMD
>   Fail if command substitution is requested.
> WRDE_REUSE
>   The pwordexp argument was passed to a previous successful call to wordexp(), and has not been passed to wordfree(). The result is the same as if the application had called wordfree() and then called wordexp() without WRDE_REUSE.
> WRDE_SHOWERR
>   Do not redirect stderr to /dev/null.
> WRDE_UNDEF
>   Report error on an attempt to expand an undefined shell variable.

> The <wordexp.h> header shall define the following symbolic constants as error return values:

> WRDE_BADCHAR
>   One of the unquoted characters- <newline>, `'|'`, `'&'`, `';'`, `'<'`, `'>'`, `'('`, `')'`, `'{'`, `'}'` - appears in words in an inappropriate context.
> WRDE_BADVAL
>   Reference to undefined shell variable when WRDE_UNDEF is set in flags.
> WRDE_CMDSUB
>   Command substitution requested when WRDE_NOCMD was set in flags.
> WRDE_NOSPACE
>   Attempt to allocate memory failed.
> WRDE_SYNTAX
>   Shell syntax error, such as unbalanced parentheses or unterminated string.

> The <wordexp.h> header shall define the size_t type as described in <stddef.h>.

> The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

>     int  wordexp(const char *restrict, wordexp_t *restrict, int);
>     void wordfree(wordexp_t *);

The following sections are informative.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> <stddef.h>

> XSH wordexp

#### CHANGE HISTORY

> First released in Issue 4. Derived from the ISO POSIX-2 standard.

#### Issue 6

> The restrict keyword is added to the prototype for wordexp().

> The WRDE_NOSYS constant is marked obsolescent.

#### Issue 7

> The obsolescent WRDE_NOSYS constant is removed.

> This reference page is clarified with respect to macros and symbolic constants.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]