GETOPT(3C) UNIX Programmer's Manual GETOPT(3C) NAME getopt, optarg, optind, opterr - get option letter from argv SYNOPSIS int getopt (argc, argv, optstring) int argc; char **argv, *optstring; extern char *optarg; extern int optind, opterr; HP-UX COMPATIBILITY Level: HP-UX/RUN ONLY Origin: System III DESCRIPTION _G_e_t_o_p_t returns the next option letter in _a_r_g_v (starting from _a_r_g_v[_1]) that matches a letter in _o_p_t_s_t_r_i_n_g. _O_p_t_s_t_r_i_n_g is a string of recognized option letters; if a letter is followed by a colon, the option is expected to have an argument that may or may not be separated from it by white space. _O_p_t_a_r_g is set to point to the start of the option argument on return from _g_e_t_o_p_t. _G_e_t_o_p_t places in _o_p_t_i_n_d the _a_r_g_v index of the next argument to be processed. _O_p_t_i_n_d is initialized to one automatically before the first call to _g_e_t_o_p_t. When all options have been processed (i.e., up to the first non-option argument), _g_e_t_o_p_t returns EOF. The special option -- may be used to delimit the end of the options; EOF will be returned, and -- will be skipped. EXAMPLE The following code fragment shows how one might process the arguments for a command that can take the mutually exclusive options a and b, and the options f and o, both of which require arguments: main (argc, argv) int argc; char **argv; { int c; extern int optind; extern char *optarg; 8 . while ((c = getopt (argc, argv, "abf:o:")) != EOF) switch (c) { case 'a': if (bflg) errflg++; else aflg++; break; case 'b': if (aflg) errflg++; else bproc(); break; case 'f': ifile = optarg; break; case 'o': ofile = optarg; bufsiza = 512; break; case '?': errflg++; } if (errflg) { fprintf (stderr, "usage: . . . "); exit (2); } . } DIAGNOSTICS _G_e_t_o_p_t prints an error message on _s_t_d_e_r_r and returns a ques- tion mark (?) when it encounters an option letter not included in _o_p_t_s_t_r_i_n_g. The error message may be suppressed by setting _o_p_t_e_r_r to zero. BUGS Options can be any ASCII characters except colon (:), ques- tion mark (?), or null (\0). It is impossible to distin- guish between a ? used as a legal option, and the character that _g_e_t_o_p_t returns when it encounters an invalid option character in the input.