ReactOS  0.4.12-dev-18-gf469aca
getopt.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int getopt (int nargc, char *const *nargv, const char *ostr)
 

Variables

const charoptarg
 
int optind
 

Function Documentation

◆ getopt()

int getopt ( int  nargc,
char *const nargv,
const char ostr 
)

Definition at line 55 of file getopt.c.

56 {
57  static const char *place = EMSG; /* option letter processing */
58  register char *oli; /* option letter list index */
59  char *p;
60 
61  if (!*place) { /* update scanning pointer */
62  if (optind >= nargc || *(place = nargv[optind]) != '-') {
63  place = EMSG;
64  return(EOF);
65  }
66  if (place[1] && *++place == '-') { /* found "--" */
67  ++optind;
68  place = EMSG;
69  return(EOF);
70  }
71  } /* option letter okay? */
72  if ((optopt = (int)*place++) == (int)':' ||
73  !(oli = strchr(ostr, optopt))) {
74  /*
75  * if the user didn't specify '-' as an option,
76  * assume it means EOF.
77  */
78  if (optopt == (int)'-')
79  return(EOF);
80  if (!*place)
81  ++optind;
82  if (opterr) {
83  if (!(p = strrchr(*nargv, '/')))
84  p = *nargv;
85  else
86  ++p;
87  (void)fprintf(stderr, "%s: illegal option -- %c\n",
88  p, optopt);
89  }
90  return(BADCH);
91  }
92  if (*++oli != ':') { /* don't need argument */
93  optarg = NULL;
94  if (!*place)
95  ++optind;
96  }
97  else { /* need an argument */
98  if (*place) /* no white space */
99  optarg = place;
100  else if (nargc <= ++optind) { /* no arg */
101  place = EMSG;
102  if (!(p = strrchr(*nargv, '/')))
103  p = *nargv;
104  else
105  ++p;
106  if (opterr)
108  "%s: option requires an argument -- %c\n",
109  p, optopt);
110  return(BADCH);
111  }
112  else /* white space */
113  optarg = nargv[optind];
114  place = EMSG;
115  ++optind;
116  }
117  return(optopt); /* dump back option letter */
118 }
int optopt
Definition: getopt.c:47
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:47
int optind
Definition: getopt.c:47
_Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
smooth NULL
Definition: ftsmooth.c:416
#define BADCH
Definition: getopt.c:51
static char * place
Definition: getopt.c:55
int opterr
Definition: getopt.c:46
const char * optarg
Definition: getopt.c:49
char * strchr(const char *String, int ch)
Definition: utclib.c:501
#define EOF
Definition: stdio.h:24
FILE * stderr
#define EMSG
Definition: getopt.c:52
GLfloat GLfloat p
Definition: glext.h:8902

Variable Documentation

◆ optarg

const char* optarg

Definition at line 49 of file getopt.c.

◆ optind

int optind

Definition at line 47 of file getopt.c.