diff options
Diffstat (limited to 'reference/C/MAN/getopt.htm')
-rw-r--r-- | reference/C/MAN/getopt.htm | 291 |
1 files changed, 291 insertions, 0 deletions
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 @@ +<TITLE>getopt</TITLE> +<body background=../../GRAPHICS/bg1.gif> +<hr> +<pre> + + + +<h3>GETOPT(3) Linux Programmer's Manual GETOPT(3) +</h3> + +<h3>NAME +</h3> getopt - Read command line options + +<h3>SYNOPSIS +</h3> #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); + +<h3>DESCRIPTION +</h3> 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() + + + +<h3>GNU April 25, 1993 1 +</h3> + + + + +<h3>GETOPT(3) Linux Programmer's Manual GETOPT(3) +</h3> + + 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. + +<h3>RETURN VALUE +</h3> 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. + +<h3>EXAMPLE +</h3> 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) + + + +<h3>GNU April 25, 1993 2 +</h3> + + + + +<h3>GETOPT(3) Linux Programmer's Manual GETOPT(3) +</h3> + + { + 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); + } + +<h3>BUGS +</h3> This manpage is confusing. + + + +<h3>GNU April 25, 1993 3 +</h3> + + + + +<h3>GETOPT(3) Linux Programmer's Manual GETOPT(3) +</h3> + +<h3>CONFORMS TO +</h3> getopt() : + POSIX.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<h3>GNU April 25, 1993 4 +</h3> + +
</pre> +<P> +<hr> +<p> +<center> +<table border=2 width=80%> +<tr align=center> +<td width=25%> +<a href=../cref.html>Top</a> +</td><td width=25%> +<a href=../master_index.html>Master Index</a> +</td><td width=25%> +<a href=../SYNTAX/keywords.html>Keywords</a> +</td><td width=25%> +<a href=../FUNCTIONS/funcref.htm>Functions</a> +</td> +</tr> +</table> +</center> +<p> +<hr> + +This manual page was brought to you by <i>mjl_man V-2.0</i> |