Documentation Archive Developer
Search
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 mem-ber member
                   ber 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 Atmospheric Research.

BSD                            December 27, 2002                           BSD