summaryrefslogtreecommitdiff
path: root/reference/C/MAN/getopt.htm
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/MAN/getopt.htm')
-rw-r--r--reference/C/MAN/getopt.htm291
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 &lt;unistd.h&gt;
+
+ int getopt(int argc, char * const argv[],
+ const char *optstring);
+
+ extern char *optarg;
+ extern int optind, opterr, optopt;
+
+ #include &lt;getopt.h&gt;
+
+ 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 &lt;getopt.h&gt; 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 &lt;stdio.h&gt;
+
+ 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 &lt; argc)
+ {
+ printf ("non-option ARGV-elements: ");
+ while (optind &lt; 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>