getopt man page on 4.4BSD

Man page or keyword search:  
man Server   1065 pages
apropos Keyword Search (all sections)
Output format
4.4BSD logo
[printable version]

GETOPT(3)							     GETOPT(3)

NAME
       getopt - get option letter from argv

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

       extern char *optarg;
       extern int optind;

DESCRIPTION
       Getopt  returns the next option letter in argv that matches a letter in
       optstring.  Optstring is a string of recognized option  letters;	 if  a
       letter  is followed by a colon, the option is expected to have an argu‐
       ment that may or may not 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  pro‐
       cessed.	Because optind is external, it is normally initialized to zero
       automatically before the first call to getopt.

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

SEE ALSO
       getopt(1)

DIAGNOSTICS
       Getopt  prints  an  error message on stderr and returns a question mark
       (?)  when it encounters an option letter not included in optstring.

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 options f and o, both of which require arguments:

	      main(argc, argv)
	      int argc;
	      char **argv;
	      {
		   int c;
		   extern int optind;
		   extern char *optarg;
		   .
		   .
		   .
		   while ((c = getopt(argc, argv, "abf:o:")) != EOF)
			switch (c) {
			case 'a':
			     if (bflg)
				  errflg++;
			     else
				  aflg++;
			     break;
			case 'b':
			     if (aflg)
				  errflg++;
			     else
				  bproc();
			     break;
			case 'f':
			     ifile = optarg;
			     break;
			case 'o':
			     ofile = optarg;
			     break;
			case '?':
			default:
			     errflg++;
			     break;
			}
		   if (errflg) {
			fprintf(stderr, "Usage: ...");
			exit(2);
		   }
		   for (; optind < argc; optind++) {
			.
			.
			.
		   }
		   .
		   .
		   .
	      }

       A template similar to this can be found in
       /usr/pub/template.c.

HISTORY
       Written by Henry Spencer, working from a Bell Labs manual page.	Behav‐
       ior believed identical to the Bell version.

BUGS
       It  is not obvious how `-' standing alone should be treated;  this ver‐
       sion treats it as a non-option argument, which is not always right.

       Option arguments are allowed to begin with `-'; this is reasonable  but
       reduces the amount of error checking possible.

       Getopt  is quite flexible but the obvious price must be paid:  there is
       much it could do that it	 doesn't,  like	 checking  mutually  exclusive
       options, checking type of option arguments, etc.

				     local			     GETOPT(3)
[top]

List of man pages available for 4.4BSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net