Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
getopt(3C)							    getopt(3C)

NAME
       getopt(), optarg, optind, opterr	- get option letter from argument vec-
       tor

SYNOPSIS
DESCRIPTION
       returns the next	option letter in argv  (starting  from	argv[1])  that
       matches	a  letter  in optstring.  argc and argv	are the	argument count
       and argument array as passed to optstring is a string of	recognized op-
       tion  characters;  if  a	 character  is followed	by a colon, the	option
       takes an	argument which may or may not be separated from	 it  by	 white
       space.

       is  the index of	the next element of the	argv[] vector to be processed.
       It is initialized to 1 by the system, and updates it when  it  finishes
       with each element of argv[].

       returns the next	option character from argv that	matches	a character in
       optstring, if there is one that matches.	 If the	option takes an	 argu-
       ment, sets the variable to point	to the option-argument as follows:

	      o	 If the	option was the last character in the string pointed to
		 by an element of argv,	then  contains	the  next  element  of
		 argv,	and is incremented by 2.  If the resulting value of is
		 greater than or equal to argc,	this indicates a  missing  op-
		 tion argument,	and returns an error indication.

	      o	 Otherwise,  points to the string following the	option charac-
		 ter in	that element of	argv, and is incremented by 1.

       If, when	is called, argv[optind]	is NULL, or the	string pointed	to  by
       argv[optind]  either does not begin with	the character or consists only
       of the character	returns	-1 without changing optind.   If  argv[optind]
       points to the string returns -1 after incrementing optind.

       If  encounters  an option character that	is not contained in optstring,
       it returns the question-mark character.	If it detects a	missing	option
       argument, it returns the	colon character	if the first character of opt-
       string was a colon, or a	question-mark character	otherwise.  In	either
       case,  sets the variable	optopt to the option character that caused the
       error.  If the application has not set the variable  to	zero  and  the
       first  character	 of optstring is not a colon, also prints a diagnostic
       message to standard error.

       The special option can be used to delimit the end of the	options; -1 is
       returned, and is	skipped.

RETURN VALUE
       returns	the  next  option  character specified on the command line.  A
       colon is	returned if detects a missing argument and the first character
       of optstring was	a colon

       A  question-mark	 is  returned if encounters an option character	not in
       optstring or detects a missing argument and the first character of opt-
       string was not a	colon

       Otherwise, returns -1 when all command line options have	been parsed.

EXTERNAL INFLUENCES
   Locale
       The  category determines	the interpretation of option letters as	single
       and/or multi-byte characters.

   International Code Set Support
       Single- and multibyte character code sets are supported.

ERRORS
       fails under the following conditions:

       [EILSEQ]	      An invalid multibyte character sequence was  encountered
		      during option processing.

EXAMPLES
       The  following  code  fragment shows to process arguments for a command
       that can	take the mutually exclusive options and	and  the  options  and
       both of which require arguments:

	      #include <stdio.h>
	      #include <unistd.h>
	      main (int	argc, char *argv[])
	      {
		  int c;
		  int bflg, aflg, errflg;
		  extern char *optarg;
		  extern int optind, optopt;
		  .
		  .
		  .
		  while	((c = getopt(argc, argv, ":abf:o:")) !=	-1)
		      switch (c) {
		      case 'a':
			  if (bflg)
			      errflg++;
			  else
			      aflg++;
			  break;
		      case 'b':
			  if (aflg)
			      errflg++;
			  else {
			      bflg++;
			      bproc( );
			  }
			  break;
		      case 'f':
			  ifile	= optarg;
			  break;
		      case 'o':
			  ofile	= optarg;
			  break;
		      case ':':	       /* -f or	-o without arguments */
			  fprintf(stderr, "Option -%c requires an argument\n",
			      optopt);
			  errflg++;
			  break;
		      case '?':
			  fprintf(stderr, "Unrecognized	option:	- %c\n",
			      optopt);
			  errflg++;
		      }
		  if (errflg) {
		      fprintf(stderr, "usage: .	. . ");
		      exit (2);
		  }
		  for (	; optind < argc; optind++) {
		      if (access(argv[optind], 4)) {
		  .
		  .
		  .
	      }

WARNINGS
       Options can be any ASCII	characters except colon	question mark or null

SEE ALSO
       getopt(1), thread_safety(5).

STANDARDS CONFORMANCE
								    getopt(3C)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXTERNAL INFLUENCES | ERRORS | EXAMPLES | WARNINGS | SEE ALSO | STANDARDS CONFORMANCE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=getopt&sektion=3c&manpath=HP-UX+11.22>

home | help