1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/**************************************************************************/
/* */
/* This file is part of Frama-C. */
/* */
/* Copyright (C) 2007-2016 */
/* CEA (Commissariat à l'énergie atomique et aux énergies */
/* alternatives) */
/* */
/* you can redistribute it and/or modify it under the terms of the GNU */
/* Lesser General Public License as published by the Free Software */
/* Foundation, version 2.1. */
/* */
/* It is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU Lesser General Public License for more details. */
/* */
/* See the GNU Lesser General Public License version 2.1 */
/* for more details (enclosed in the file licenses/LGPLv2.1). */
/* */
/**************************************************************************/
#ifndef __FC_GETOPT_H
#define __FC_GETOPT_H
#include "features.h"
__BEGIN_DECLS
extern char *optarg;
extern int optind, opterr, optopt;
/*@
assigns \result, *optarg, optind, opterr, optopt
\from argc, argv[0..argc-1], optstring[0..];
*/
extern int getopt(int argc, char * const argv[], const char *optstring);
/* GNU specific */
struct option
{
const char *name;
int has_arg;
int *flag;
int val;
};
# define no_argument 0
# define required_argument 1
# define optional_argument 2
/*@
assigns \result, *optarg, optind, opterr, optopt, *(longopts[0..].flag)
\from argc, argv[0..argc-1], shortopts[0..], longopts[0..];
*/
extern int getopt_long (int argc, char *const argv[],
const char *shortopts,
const struct option *longopts, int *longind);
/*@
assigns \result, *optarg, optind, opterr, optopt, *(longopts[0..].flag)
\from argc, argv[0..argc-1], shortopts[0..], longopts[0..];
*/
extern int getopt_long_only (int argc, char *const argv[],
const char *shortopts,
const struct option *longopts, int *longind);
__END_DECLS
#endif
|