iOS Reference Library Apple Developer
Search

 

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
Did this document help you? Yes It's good, but... Not helpful...