home *** CD-ROM | disk | FTP | other *** search
-
- GETSUBOPT(3) UNIX Programmer's Manual GETSUBOPT(3)
-
- NNAAMMEE
- ggeettssuubboopptt - get sub options from an argument
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssttddiioo..hh>>
-
- _i_n_t
- ggeettssuubboopptt(_c_h_a_r _*_*_o_p_t_i_o_n_p, _c_h_a_r _* _c_o_n_s_t _*_t_o_k_e_n_s, _c_h_a_r _*_*_v_a_l_u_e_p)
-
- DDEESSCCRRIIPPTTIIOONN
- The ggeettssuubboopptt() parses a string containing tokens delimited by one or
- more tab, space or comma (`,') characters. It is intended for use in
- parsing groups of option arguments provided as part of a utility command
- line.
-
- The argument _o_p_t_i_o_n_p is a pointer to a pointer to the string. The argu
- ment _t_o_k_e_n_s is a pointer to a NULLterminated array of pointers to
- strings.
-
- The ggeettssuubboopptt() function returns the zerobased offset of the pointer in
- the _t_o_k_e_n_s array referencing a string which matches the first token in
- the string, or, -1 if the string contains no tokens or _t_o_k_e_n_s does not
- contain a matching string.
-
- If the token is of the form ``name=value'', the location referenced by
- _v_a_l_u_e_p will be set to point to the start of the ``value'' portion of the
- token.
-
- On return from ggeettssuubboopptt(), _o_p_t_i_o_n_p will be set to point to the start of
- the next token in the string, or the null at the end of the string if no
- more tokens are present. The external variable _s_u_b_o_p_t_a_r_g will be set to
- point to the start of the current token, or NULL if no tokens were pre
- sent. The argument _v_a_l_u_e_p will be set to point to the ``value'' portion
- of the token, or NULL if no ``value'' portion was present.
-
- EEXXAAMMPPLLEE
- char *tokens[] = {
- #define ONE 0
- "one",
- #define TWO 1
- "two",
- NULL
- };
-
- ...
-
- extern char *optarg, *suboptarg;
- char *options, *value;
-
- while ((ch = getopt(argc, argv, "ab:")) != -1) {
- switch(ch) {
- case 'a':
- /* process ``a'' option */
- break;
- case 'b':
- options = optarg;
- while (*options) {
- switch(getsubopt(&options, tokens, &value)) {
- case ONE:
- /* process ``one'' sub option */
- break;
- case TWO:
- /* process ``two'' sub option */
- if (!value)
- error("no value for two");
- i = atoi(value);
- break;
- case -1:
- if (suboptarg)
- error("illegal sub option %s",
- suboptarg);
- else
- error("missing sub option");
- break;
- }
- break;
- }
-
- SSEEEE AALLSSOO
- getopt(3), strsep(3)
-
- HHIISSTTOORRYY
- The ggeettssuubboopptt() function is currently under development.
-
- BSD Experimental July 31, 1991 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-