1 /* Declarations for getopt. 2 Copyright (C) 1989-2018 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 Unlike the bulk of the getopt implementation, this file is NOT part 5 of gnulib; gnulib also has a getopt.h but it is different. 6 7 The GNU C Library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Lesser General Public 9 License as published by the Free Software Foundation; either 10 version 2.1 of the License, or (at your option) any later version. 11 12 The GNU C Library is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 Lesser General Public License for more details. 16 17 You should have received a copy of the GNU Lesser General Public 18 License along with the GNU C Library; if not, see 19 <http://www.gnu.org/licenses/>. */ 20 21 #ifndef _GETOPT_H 22 #define _GETOPT_H 1 23 24 #ifndef _GETOPT_STANDALONE 25 #include <features.h> 26 #endif 27 28 // From <sys/cdefs.h>: 29 #ifndef __BEGIN_DECLS 30 # ifdef __cplusplus 31 # define __BEGIN_DECLS extern "C" { 32 # define __END_DECLS } 33 # else 34 # define __BEGIN_DECLS 35 # define __END_DECLS 36 # endif 37 #endif 38 #ifndef __THROW 39 # ifdef __cplusplus 40 # define __THROW throw() 41 # elif defined(__GNUC__) 42 # define __THROW __attribute__ ((__nothrow__)) 43 # else 44 # define __THROW 45 # endif 46 #endif 47 #ifndef __nonnull 48 # ifdef __GNUC__ 49 # define __nonnull(x) __attribute__ ((__nonnull__ x)) 50 # else 51 # define __nonnull(x) 52 # endif 53 #endif 54 55 /* The type of the 'argv' argument to getopt_long and getopt_long_only 56 is properly 'char **', since both functions may write to the array 57 (in order to move all the options to the beginning). However, for 58 compatibility with old versions of LSB, glibc has to use 'char *const *' 59 instead. */ 60 #ifndef __getopt_argv_const 61 # define __getopt_argv_const const 62 #endif 63 64 #include <bits/getopt_core.h> 65 #include <bits/getopt_ext.h> 66 67 #endif /* getopt.h */ 68