The Open Group Base Specifications Issue 8
IEEE Std 1003.1-2024
Copyright © 2001-2024 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.

Issue 8

Austin Group Defect 1444 is applied, correcting cross-references to wordexp .

End of informative text.

 

return to top of page

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