*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> wordexp (3)              
Title
Content
Arch
Section
 

wordexp(3)

Contents


NAME    [Toc]    [Back]

       wordexp, wordfree - Perform word expansions

SYNOPSIS    [Toc]    [Back]

       #include <wordexp.h>

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

LIBRARY    [Toc]    [Back]

       Standard C Library (libc)

STANDARDS    [Toc]    [Back]

       Interfaces  documented  on  this reference page conform to
       industry  standards as follows:

       wordexp(), wordfree():  XPG4, XPG4-UNIX

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

PARAMETERS    [Toc]    [Back]

       Specifies the string containing the tokens to be expanded.
       Contains a pointer to a wordexp_t structure.   Contains  a
       bit  option  specifying  the  configurable  aspects of the
       wordexp() function.

DESCRIPTION    [Toc]    [Back]

       The wordexp() function performs word expansions equivalent
       to the word expansion that would be performed by the shell
       if the contents of the words parameter were  arguments  on
       the  command  line. The list of expanded  words are placed
       in thepwordexp parameter.

       The expansions are the same as  that which would  be  performed
  by the shell if the words parameter were the  part
       of a command line representing the parameters  to  a  command.
  Therefore,  the  words  arameter  cannot contain an
       unquoted newline character or any of  the  unquoted  shell
       special characters:

          |   &   ;   <   >



       except  in  the  case  of  command substitution. The words
       parameter  also cannot  contain  unquoted  parentheses  or
       braces, except in the case of  command or variable substitution.
 If the words parameter contains an  unquoted  comment
  character (#) that is the beginning of a  token, the
       wordexp() function may treat the comment  character  as  a
       regular  character, or may interpret it as a comment indicator
 and ignore the remainder of the  expression  in  the
       words parameter.

       The  wordexp()  function  stores  the  number of generated
       words  and a pointer  to a list of pointers  to  words  in
       the  pwordexp  parameter.  Each  individual  field created
       during the field splitting  or  pathname  expansion  is  a
       separate  word in the list specified by the pwordexp arameter.
 The first pointer  after the last token in the  list
       is a null pointer. The expansion  of special parameters *,
       @, #, ?, -, $, !, and 0 is  unspecified.   The  words  are
       expanded  in  the following order: Tilde expansion is performed
 first.  Parameter expansion, command  substitution,
       and   arithmetic expansion are performed next, from beginning
 to end.  Field splitting is then performed on  fields
       generated   by step 2, unless the IFS (Input Field Separators)
 is full.  Pathname expansion  is  performed,  unless
       the  set -f command is in effect.  Quote removal is always
       performed last.

       The pwordexp structure is allocated  by  the  caller,  but
       memory  to contain the expanded tokens is allocated by the
       wordexp() function and added to the structure  as  needed.
       The  wordfree()  function frees any memory associated with
       pwordexp() from a previous call to wordexp().

       The value of the flags parameter is the bitwise  inclusive
       OR  of  the  following constants, which are defined in the
       wordexp.h file: Appends words generated to those generated
       by  a  previous call to the wordexp() function.  Makes use
       of the we_offs structure. If  the  WRDE_DOOFFS  option  is
       set,   the we_offs structure is used to specify the number
       of null pointers  to add to the beginning of the  we_words
       structure.  If  the  WRDE_DOOFFS  option is not set in the
       first call to the wordexp()  function  with  the  pwordexp
       parameter,  it  should  not be set in subsequent  calls to
       the wordexp() function with the pwordexp parameter.  Fails
       if command substitution is requested.  The pwordexp parameter
 was passed to a previous successful call to the wordexp()
  function.   Therefore,  the memory previously allocated
 may be reused.  Does not redirect standard error  to
       /dev/null.  Reports error on an attempt to expand an undefined
 shell variable.

       The WRDE_APPEND option can be used to append a new set  of
       words  to those  generated by a previous call to the wordexp()
 function. The  following rules  apply  when  two  or
       more  calls  to  the wordexp() function are  made with the
       same value of the pwordexp parameter and without intervening
  calls to the wordfree() function: The first such call
       does not set the WRDE_APPEND option.  All subsequent calls
       set  it.   For  a single invocation of the wordexp() function,
 all calls either set the WRDE_DOOFFS option,  or  do
       not  set  it.   After the second and each subsequent call,
       the pwordexp parameter points  to a  list  containing  the
       following:  Zero  or more null characters, as specified by
       the WRDE_DOOFFS option and the we_offs field of the  wordexp_t
  structure.   Pointers to the words that were in the
       pwordexp parameter before the call, in the same  order  as
       before.  Pointers to the new words generated by the latest
       call, in the specified order.  The count returned  in  the
       pwordexp  parameter  is the total number of words from all
       of the calls.   The  application  should  not  modify  the
       pwordexp parameter  between the calls.

       Unless the WRDE_SHOWERR option is set in the flags parameter,
 the wordexp() function redirects  standard  error  to
       /dev/null  for any  utilities executed as a result of command
 substitution while expanding the words parameter.  If
       the WRDE_SHOWERR option is set, the wordexp() function can
       write messages to standard error if   syntax  errors   are
       detected while expanding the words parameter.

       If  any  of the following conditions occurs, the wordexp()
       function returns the corresponding nonzero constant, which
       is  defined  in  the  wordexp.h file.  One of the unquoted
       characters |, & ,  ;,  <,  >,   newline,  parenthesis,  or
       braces  appears in the words parameter in an inappropriate
       context.  Reference to undefined shell variable when   the
       WRDE_UNDEF  option is set in the flags parameter.  Command
       substitution requested when the WRDE_NOCMD option  is  set
       in the flags parameter.  An attempt to allocate memory was
       unsuccessful.  Shell  syntax  error,  such  as  unbalanced
       parentheses or unterminated string.

       The  wordexp()  function  allows an application to perform
       all of the  shell's expansions on a word or words obtained
       from  a user. For example, if the  application prompts for
       a filename (or a list of file names)  and  then  uses  the
       wordexp()  function  to  process the input, the user could
       respond with  anything that would be valid as input to the
       shell.

       The  WRDE_NOCMD  option is provided for applications that,
       for security or  other reasons, want  to  prevent  a  user
       from executing shell commands. Disallowing  unquoted shell
       special characters also  prevents  unwanted  side  effects
       such as  executing a command or writing to a file.

NOTES    [Toc]    [Back]

       The  wordexp()  function  can cause a signal to be issued.
       If a user  program   catches  the  signal,  wordexp()  may
       return an error.

RETURN VALUES    [Toc]    [Back]

       If  no  errors  are  encountered while expanding the words
       parameter, the wordexp() function returns  a  value  of  0
       (zero).   If  an  error  occurs,  the  function  returns a
       nonzero value indicating the error.

       If  the  wordexp()  function  returns  the   error   value
       WRDE_NOSPACE, then  the expression in the pwordexp parameter
 is updated to reflect any words   that  were  successfully
 expanded. In other cases,  the pwordexp parameter is
       not modified.

       The wordfree() function returns no value.

FILES    [Toc]    [Back]

       Defines word expansion macros, data types, and  functions.

SEE ALSO    [Toc]    [Back]

      
      
       Functions: glob(3)

       Standards: standards(5)



                                                       wordexp(3)
[ Back ]
 Similar pages
Name OS Title
wordexp FreeBSD perform shell-style word expansions
wordfree FreeBSD perform shell-style word expansions
ffs Linux find first bit set in a word
boggle NetBSD word search game
getwc IRIX get wchar_t character or word from a stream
putc IRIX put character or word on a stream
getc IRIX get character or word from a stream
boggle OpenBSD word search game
getc_unlocked NetBSD get next character or word from input stream
fgetc NetBSD get next character or word from input stream
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service