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

  man pages->Tru64 Unix man pages -> getopt (3)              



NAME    [Toc]    [Back]

       getopt - Get option letters from the argument vector

SYNOPSIS    [Toc]    [Back]

       #include <unistd.h>

       int getopt(
               int argc,
               char * const argv [],
               const char *optstring );

       extern char *optarg; extern int optind; extern int opterr;
       extern int optopt;

LIBRARY    [Toc]    [Back]

       Standard C Library (libc)

STANDARDS    [Toc]    [Back]

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

       getopt(): XSH5.0

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

PARAMETERS    [Toc]    [Back]

       Specifies the number of parameters passed to the  routine.
       Points  to  an array of argc pointers to argument strings.
       Specifies a string of recognized option characters.  If  a
       character  is  followed  by  a  :  (colon),  the option is
       expected to take a parameter that may or may not be  separated
 from it by white space.

DESCRIPTION    [Toc]    [Back]

       The  getopt()  function  parses argument lists. It returns
       the next option character in the argv parameter list  that
       matches  a  character  in the optstring parameter. If that
       option takes an argument, the getopt()  function  has  the
       optarg  variable point to the option argument according to
       the following rules: If the option is the  last  character
       pointed  to by an argv element, optarg will contain argv's
       next element, and optind is incremented by 2. The getopt()
       function  returns  an  error  if  the  resulting optind is
       greater than or equal to argc.  If the option is  not  the
       last  character,  then  the  optarg variable points to the
       string after the option character in the  associated  element
 of argv. The optind variable is incremented by 1.

       The  optarg external variable is set to point to the start
       of the option's parameter  on  return  from  the  getopt()

       The  getopt()  function  places the argv index of the next
       argument to be processed in optind. The optind variable is
       externally  initialized  to  1  before  the  first call to
       getopt() so that argv[0] is not processed. Error  messages
       can  be suppressed by providing a value of 0 (zero) as the
       opterr parameter.

NOTES    [Toc]    [Back]

       [Tru64 UNIX]  The external int optopt variable is  set  to
       the  real option found in the argv parameter. This is true
       whether the option is in the optstring parameter or not.

RETURN VALUES    [Toc]    [Back]

       Upon successful completion, the getopt() function  returns
       the  option  character  that was detected. If the function
       encounters a option that is not included in the  optstring
       parameter,  or  if  the : (colon) character is used incorrectly,
 the getopt() function prints an error  message  on
       stderr  and  returns  a  ?  (question mark). If there is a
       missing option, the getopt() function returns a :  (colon)
       if  optstring's  first  character  is a : (colon), and a ?
       (question mark) otherwise. In addition, the getopt() function
 sets the optopt variable to the option character that
       caused one of these errors.

       The getopt() function also displays a  diagnostic  message
       if  the  application  did not set the opterr variable to 0
       (zero),  and  optstring's  first  character  is  not  a  :

       When  all  options have been processed (that is, up to the
       first nonoption argument), the getopt() function returns a
       value  of  -1.   The  special option -- (dash dash) can be
       used to delimit the end of the options;  -1  is  returned,
       and the -- (dash dash) string is skipped.

       The  getopt()  function  does  not change optind, and also
       returns a value of -1, if one of the following occurs: The
       argv[optind]  result is NULL.  The *argv[optind] result is
       not the special - (dash) option.  The argv[optind]  result
       points to the - (dash) string.

       The  getopt() function does increment optind if the result
       of argv[optind] points to the -- (dash dash) string.

EXAMPLES    [Toc]    [Back]

       The following example shows a suggested  way  to  use  the
       getopt() function.

       #include  <unistd.h>  main(argc,  argv) int     argc; char

       #define ARGS    "r:w:f:s"


               int     c, errflg = 0;
               int     readers = 1, writers = 1;
               int     freeBufs = 1;
               int     doStats = FALSE;

               optarg = NULL;
               while (!errflg && ((c = getopt(argc, argv,  ARGS))
       != -1))

                       switch (c) {
                       case 'r'        :
                               readers = atoi(optarg);
                       case 'w'        :
                               writers = atoi(optarg);
                       case 'f'        :
                               freeBufs = atoi(optarg);
                       case 's'        :
                               doStats = TRUE;
                       default :


SEE ALSO    [Toc]    [Back]

       Commands: getopt(1)

       Standards: standards(5)

[ Back ]
 Similar pages
Name OS Title
getopt IRIX get option letter from argument vector
lsamen IRIX test if the first N letters of CA are the same as the first N letters of CB, regardless of case
getabi IRIX get ABI from argument vector
getopt OpenBSD get option character from command line argument list
getopt NetBSD get option character from command line argument list
getopt FreeBSD get option character from command line argument list
inet6_opt_append Tru64 Return the length of an IPv6 extension header with a new option and append the option
getoption IRIX retrieve an option from the option database
banner OpenBSD print strings in large letters
banner HP-UX make posters in large letters
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service