ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



WORDEXP(3)               BSD Library Functions Manual               WORDEXP(3)

NAME
     wordexp -- perform shell-style word expansions

SYNOPSIS
     #include <wordexp.h>

     int
     wordexp(const char *restrict words, wordexp_t *restrict pwordexp, int flags);

     void
     wordfree(wordexp_t *pwordexp);

DESCRIPTION
     The wordexp() function performs shell-style word expansion on words.  It places the list of words into
     the we_wordv member of pwordexp and the number of words into we_wordc.

     The flags argument (see BUGS) 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_DOOFS    As many NULL pointers as are specified by the we_offs member of pwordexp 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 pwordexp 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 wordexp_t structure is defined 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().

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.

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

           wordexp_t pwordexp;

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

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

BUGS
     This version of workexp() ignores the value of the flags argument.

COPYRIGHT
     Copyright 1995-2002 University Corporation for Atmospheric Research/Unidata

     Portions of this software were developed by the Unidata Program at the University Corporation for Atmo-spheric Atmospheric
     spheric Research.

BSD                            December 27, 2002                           BSD

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.