"Fossies" - the Fresh Open Source Software Archive

Member "n2n-3.1.1/win32/getopt.h" (31 Mar 2022, 6752 Bytes) of package /linux/misc/n2n-3.1.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "getopt.h" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 3.0_vs_3.1.1.

    1 /**
    2  * (C) 2007-22 - ntop.org and contributors
    3  *
    4  * This program is free software; you can redistribute it and/or modify
    5  * it under the terms of the GNU General Public License as published by
    6  * the Free Software Foundation; either version 3 of the License, or
    7  * (at your option) any later version.
    8  *
    9  * This program is distributed in the hope that it will be useful,
   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   12  * GNU General Public License for more details.
   13  *
   14  * You should have received a copy of the GNU General Public License
   15  * along with this program; if not see see <http://www.gnu.org/licenses/>
   16  *
   17  */
   18 
   19 /* Declarations for getopt.
   20    Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc.
   21    This file is part of the GNU C Library.
   22 
   23    The GNU C Library is free software; you can redistribute it and/or
   24    modify it under the terms of the GNU Library General Public License as
   25    published by the Free Software Foundation; either version 2 of the
   26    License, or (at your option) any later version.
   27 
   28    The GNU C Library is distributed in the hope that it will be useful,
   29    but WITHOUT ANY WARRANTY; without even the implied warranty of
   30    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   31    Library General Public License for more details.
   32 
   33    You should have received a copy of the GNU Library General Public
   34    License along with the GNU C Library; see the file COPYING.LIB.  If not,
   35    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   36    Boston, MA 02111-1307, USA.  */
   37 
   38 #ifndef _GETOPT_H
   39 
   40 #ifndef __need_getopt
   41 # define _GETOPT_H 1
   42 #endif
   43 
   44 #ifdef  __cplusplus
   45 extern "C" {
   46 #endif
   47 
   48 /* For communication from `getopt' to the caller.
   49    When `getopt' finds an option that takes an argument,
   50    the argument value is returned here.
   51    Also, when `ordering' is RETURN_IN_ORDER,
   52    each non-option ARGV-element is returned here.  */
   53 
   54 extern char *optarg;
   55 
   56 /* Index in ARGV of the next element to be scanned.
   57    This is used for communication to and from the caller
   58    and for communication between successive calls to `getopt'.
   59 
   60    On entry to `getopt', zero means this is the first call; initialize.
   61 
   62    When `getopt' returns -1, this is the index of the first of the
   63    non-option elements that the caller should itself scan.
   64 
   65    Otherwise, `optind' communicates from one call to the next
   66    how much of ARGV has been scanned so far.  */
   67 
   68 extern int optind;
   69 
   70 /* Callers store zero here to inhibit the error message `getopt' prints
   71    for unrecognized options.  */
   72 
   73 extern int opterr;
   74 
   75 /* Set to an option character which was unrecognized.  */
   76 
   77 extern int optopt;
   78 
   79 #ifndef __need_getopt
   80 /* Describe the long-named options requested by the application.
   81    The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
   82    of `struct option' terminated by an element containing a name which is
   83    zero.
   84 
   85    The field `has_arg' is:
   86    no_argument      (or 0) if the option does not take an argument,
   87    required_argument    (or 1) if the option requires an argument,
   88    optional_argument    (or 2) if the option takes an optional argument.
   89 
   90    If the field `flag' is not NULL, it points to a variable that is set
   91    to the value given in the field `val' when the option is found, but
   92    left unchanged if the option is not found.
   93 
   94    To have a long-named option do something other than set an `int' to
   95    a compiled-in constant, such as set a value from `optarg', set the
   96    option's `flag' field to zero and its `val' field to a nonzero
   97    value (the equivalent single-letter option character, if there is
   98    one).  For long options that have a zero `flag' field, `getopt'
   99    returns the contents of the `val' field.  */
  100 
  101 struct option
  102 {
  103 # if defined __STDC__ && __STDC__
  104   const char *name;
  105 # else
  106   char *name;
  107 # endif
  108   /* has_arg can't be an enum because some compilers complain about
  109      type mismatches in all the code that assumes it is an int.  */
  110   int has_arg;
  111   int *flag;
  112   int val;
  113 };
  114 
  115 /* Names for the values of the `has_arg' field of `struct option'.  */
  116 
  117 # define no_argument        0
  118 # define required_argument  1
  119 # define optional_argument  2
  120 #endif  /* need getopt */
  121 
  122 
  123 /* Get definitions and prototypes for functions to process the
  124    arguments in ARGV (ARGC of them, minus the program name) for
  125    options given in OPTS.
  126 
  127    Return the option character from OPTS just read.  Return -1 when
  128    there are no more options.  For unrecognized options, or options
  129    missing arguments, `optopt' is set to the option letter, and '?' is
  130    returned.
  131 
  132    The OPTS string is a list of characters which are recognized option
  133    letters, optionally followed by colons, specifying that that letter
  134    takes an argument, to be placed in `optarg'.
  135 
  136    If a letter in OPTS is followed by two colons, its argument is
  137    optional.  This behavior is specific to the GNU `getopt'.
  138 
  139    The argument `--' causes premature termination of argument
  140    scanning, explicitly telling `getopt' that there are no more
  141    options.
  142 
  143    If OPTS begins with `--', then non-option arguments are treated as
  144    arguments to the option '\0'.  This behavior is specific to the GNU
  145    `getopt'.  */
  146 
  147 #if defined __STDC__ && __STDC__
  148 # ifdef __GNU_LIBRARY__
  149 /* Many other libraries have conflicting prototypes for getopt, with
  150    differences in the consts, in stdlib.h.  To avoid compilation
  151    errors, only prototype getopt for the GNU C library.  */
  152 extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
  153 # else /* not __GNU_LIBRARY__ */
  154 extern int getopt ();
  155 # endif /* __GNU_LIBRARY__ */
  156 
  157 # ifndef __need_getopt
  158 extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
  159                 const struct option *__longopts, int *__longind);
  160 extern int getopt_long_only (int __argc, char *const *__argv,
  161                  const char *__shortopts,
  162                      const struct option *__longopts, int *__longind);
  163 
  164 /* Internal only.  Users should not call this directly.  */
  165 extern int _getopt_internal (int __argc, char *const *__argv,
  166                  const char *__shortopts,
  167                      const struct option *__longopts, int *__longind,
  168                  int __long_only);
  169 # endif
  170 #else /* not __STDC__ */
  171 extern int getopt ();
  172 # ifndef __need_getopt
  173 extern int getopt_long ();
  174 extern int getopt_long_only ();
  175 
  176 extern int _getopt_internal ();
  177 # endif
  178 #endif /* __STDC__ */
  179 
  180 #ifdef  __cplusplus
  181 }
  182 #endif
  183 
  184 /* Make sure we later can get all the definitions and declarations.  */
  185 #undef __need_getopt
  186 
  187 #endif /* getopt.h */