From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/MAN/getopt.htm | 291 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 291 insertions(+) create mode 100644 reference/C/MAN/getopt.htm (limited to 'reference/C/MAN/getopt.htm') diff --git a/reference/C/MAN/getopt.htm b/reference/C/MAN/getopt.htm new file mode 100644 index 0000000..ae24692 --- /dev/null +++ b/reference/C/MAN/getopt.htm @@ -0,0 +1,291 @@ +getopt + +
+
+
+
+
+

GETOPT(3) Linux Programmer's Manual GETOPT(3) +

+ +

NAME +

getopt - Read command line options + +

SYNOPSIS +

#include <unistd.h> + + int getopt(int argc, char * const argv[], + const char *optstring); + + extern char *optarg; + extern int optind, opterr, optopt; + + #include <getopt.h> + + int getopt_long(int argc, char * const argv[], + const char *shortopts, + const struct option *longopts, int longind); + +

DESCRIPTION +

The getopt() function parses the command line arguments. + Its arguments argc and argv are the argument count and + array as passed to the main() function on program invoca- + tion. optstring is a list of available option characters. + If such a character is followed by a colon, the option + takes an argument, which is placed in optarg. + + The external variable optind is the index of the next + array element of argv[] to be processed; it communicates + from one call of getopt() to the next which element to + process. + + The getopt_long() function works like getopt() except that + it also accepts long options, started out by two dashes. + If these take values, it is either in the form --arg=value + or --arg value. It takes the additional arguments lon- + gopts which is a pointer to the first element of an array + of struct option declared in <getopt.h> as + + struct option { + const char *name; + int has_arg; + int *flag; + int val; + }; + + The meaning of the different fields are: + + name is the name of the long option. + + has_arg + is a boolean value which should be set to nonzero + if the long option takes a value. + + flag determines the return value if getopt_long() + + + +

GNU April 25, 1993 1 +

+ + + + +

GETOPT(3) Linux Programmer's Manual GETOPT(3) +

+ + returns a value for a long option; if it is non- + zero, zero is returned as a function value, other- + wise val. + + val determines the value to return if flag is zero. + + The last element of the array has to be filled with + zeroes. + + The option_index points to the index of the long option + relative to longopts. + +

RETURN VALUE +

The getopt() function returns the option character if the + option was found successfully, ':' if there was a missing + parameter for one of the options, '?' for an unknown + option character and -1 for the end of the option list. + +

EXAMPLE +

The following example program, from the source code, + illustrates the use of getopt_long() with most of its fea- + tures. + + #include <stdio.h> + + int + main (argc, argv) + int argc; + char **argv; + { + int c; + int digit_optind = 0; + + while (1) + { + int this_option_optind = optind ? optind : 1; + int option_index = 0; + static struct option long_options[] = + { + {"add", 1, 0, 0}, + {"append", 0, 0, 0}, + {"delete", 1, 0, 0}, + {"verbose", 0, 0, 0}, + {"create", 1, 0, 'c'}, + {"file", 1, 0, 0}, + {0, 0, 0, 0} + }; + + c = getopt_long (argc, argv, "abc:d:012", + long_options, &option_index); + if (c == -1) + break; + + switch (c) + + + +

GNU April 25, 1993 2 +

+ + + + +

GETOPT(3) Linux Programmer's Manual GETOPT(3) +

+ + { + case 0: + printf ("option %s", long_options[option_index].name); + if (optarg) + printf (" with arg %s", optarg); + printf ("0); + break; + + case '0': + case '1': + case '2': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.0); + digit_optind = this_option_optind; + printf ("option %c0, c); + break; + + case 'a': + printf ("option a0); + break; + + case 'b': + printf ("option b0); + break; + + case 'c': + printf ("option c with value `%s'0, optarg); + break; + + case 'd': + printf ("option d with value `%s'0, optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??0, c); + } + } + + if (optind < argc) + { + printf ("non-option ARGV-elements: "); + while (optind < argc) + printf ("%s ", argv[optind++]); + printf ("0); + } + + exit (0); + } + +

BUGS +

This manpage is confusing. + + + +

GNU April 25, 1993 3 +

+ + + + +

GETOPT(3) Linux Programmer's Manual GETOPT(3) +

+ +

CONFORMS TO +

getopt() : + POSIX.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

GNU April 25, 1993 4 +

+ +
+

+


+

+

+ + + + +
+Top + +Master Index + +Keywords + +Functions +
+
+

+


+ +This manual page was brought to you by mjl_man V-2.0 -- cgit v1.2.3-54-g00ecf