The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

getsubopt (3)
  • getsubopt (3) ( Solaris man: Библиотечные вызовы )
  • >> getsubopt (3) ( FreeBSD man: Библиотечные вызовы )
  • getsubopt (3) ( Linux man: Библиотечные вызовы )
  • getsubopt (3) ( POSIX man: Библиотечные вызовы )

  • BSD mandoc
     

    NAME

    
    
    getsubopt
    
     - get sub options from an argument
    
     
    

    LIBRARY

    Lb libc
    
     
    

    SYNOPSIS

       #include <stdlib.h>
    Vt extern char *suboptarg ; int getsubopt (char **optionp char * const *tokens char **valuep);
     

    DESCRIPTION

    The getsubopt ();
    function 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 Fa optionp is a pointer to a pointer to the string. The argument Fa tokens is a pointer to a NULL -terminated array of pointers to strings.

    The getsubopt ();
    function returns the zero-based offset of the pointer in the Fa tokens array referencing a string which matches the first token in the string, or, -1 if the string contains no tokens or Fa tokens does not contain a matching string.

    If the token is of the form ``name=value'', the location referenced by Fa valuep will be set to point to the start of the ``value'' portion of the token.

    On return from getsubopt (,);
    Fa optionp 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 Fa suboptarg will be set to point to the start of the current token, or NULL if no tokens were present. The argument Fa valuep will be set to point to the ``value'' portion of the token, or NULL if no ``value'' portion was present.  

    EXAMPLES

    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;
            }
    
     

    SEE ALSO

    getopt(3), strsep(3)  

    HISTORY

    The getsubopt ();
    function first appeared in BSD 4.4


     

    Index

    NAME
    LIBRARY
    SYNOPSIS
    DESCRIPTION
    EXAMPLES
    SEE ALSO
    HISTORY


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру