manpagez: man pages & more
man wordexp(3)
Home | html | info | man
wordexp(3)               BSD Library Functions Manual               wordexp(3)


     wordexp -- perform shell-style word expansions


     #include <wordexp.h>

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

     wordfree(wordexp_t *pwordexp);


     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

     WRDE_DOOFS    As many NULL pointers as are specified by the we_offs mem-
                   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

     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().


     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.


     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);


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


     This version of wordexp() ignores the value of the flags argument.


     Copyright 1995-2002 University Corporation for Atmospheric

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

BSD                            December 27, 2002                           BSD

Mac OS X 10.8 - Generated Sat Sep 1 07:37:41 CDT 2012
© 2000-2023
Individual documents may contain additional copyright information.