Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getopt(3C) — sysv — mips UMIPS RISC/os 4.52

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getopts(1)

intro(1)

GETOPT(3C-SysV)



GETOPT(3C-SysV)     RISC/os Reference Manual      GETOPT(3C-SysV)



NAME
     getopt - get option letter from argument vector

SYNOPSIS
     int getopt (argc, argv, optstring)
     int argc;
     char **argv, *opstring;

     extern char *optarg;
     extern int optind, opterr;

DESCRIPTION
     getopt returns the next option letter in argv that matches a
     letter in optstring.  It supports all the rules of the com-
     mand syntax standard (see intro(1)).  So all new commands
     will adhere to the command syntax standard, they should use
     getopts(1) or getopt(3C) to parse positional parameters and
     check for options that are legal for that command.

     optstring must contain the option letters the command using
     getopt will recognize; if a letter is followed by a colon,
     the option is expected to have an argument, or group of
     arguments, which must be separated from it by white space.

     optarg is set to point to the start of the option-argument
     on return from getopt.

     getopt places in optind the argv index of the next argument
     to be processed.  optind is external and is initialized to 1
     before the first call to getopt.

     When all options have been processed (i.e., up to the first
     non-option argument), getopt returns -1.  The special option
     ``--'' may be used to delimit the end of the options; when
     it is encountered, -1 will be returned, and ``--'' will be
     skipped.

DIAGNOSTICS
     getopt prints an error message on standard error and returns
     a question mark (?)  when it encounters an option letter not
     included in optstring or no option-argument after an option
     that expects one.  This error message may be disabled by
     setting opterr to 0.

EXAMPLE
     The following code fragment shows how one might process the
     arguments for a command that can take the mutually exclusive
     options a and b, and the option o, which requires an
     option-argument:

     main (argc, argv)
     int argc;



                         Printed 1/15/91                   Page 1





GETOPT(3C-SysV)     RISC/os Reference Manual      GETOPT(3C-SysV)



     char **argv;
     {
          int c;
          extern char *optarg;
          extern int optind;
          .
          .
          while ((c = getopt(argc, argv, "abo:")) != -1)
               switch (c) {
               case 'a':
                    if (bflg)
                         errflg++;
                    else
                         aflg++;
                    break;
               case 'b':
                    if (aflg)
                         errflg++;
                    else
                         bproc( );
                    break;
               case 'o':
                    ofile = optarg;
                    break;
               case '?':
                    errflg++;
               }
          if (errflg) {
               (void)fprintf(stderr, "usage: . . . ");
               exit (2);
          }
          for ( ; optind < argc; optind++) {
          .    if (access(argv[optind], 4)) {
          .
     }

WARNING
     Although the following command syntax rule (see intro(1))
     relaxations are permitted under the current implementation,
     they should not be used because they may not be supported in
     future releases of the system.  As in the EXAMPLE section
     above, a and b are options, and the option o requires an
     option-argument:

          cmd -aboxxx file  (Rule 5 violation:  options with
                option-arguments must not be grouped with other options)
          cmd -ab -oxxx file  (Rule 6 violation:  there must be
                white space after an option that takes an option-argument)

SEE ALSO
     getopts(1), intro(1) in the User's Reference Manual.




 Page 2                  Printed 1/15/91





GETOPT(3C-SysV)     RISC/os Reference Manual      GETOPT(3C-SysV)



NOTES
     Changing the value of the variable optind, or calling getopt
     with different values of argv, may lead to unexpected
     results.



















































                         Printed 1/15/91                   Page 3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026