LC_PROCESS(3)                                     LC_PROCESS(3)





NAME
       lc_process - Begin processing configuration files.


SYNOPSIS
       #include <libconfig.h>

       int  lc_process(int  argc, char **argv, const char *app-
       name, lc_conf_type_t type, const char *extra);


DESCRIPTION
       The lc_process(3) function begins processing of the com-
       mand  line arguments, environment variables, and command
       line options.  The argc and argv parameters should be in
       the  same  format as passed to the main function of your
       program.  The appname parameter should be  a  reasonable
       form of the name of the application.  The type parameter
       should describe the format  of  the  configuration  file
       (see  below).  The extra parameter should list any extra
       configuration files to process.

       Valid type parameter values:

       LC_CONF_SECTION
              This type of configuration file is similar to the
              Windows INI-file style.  An example configuration
              file:
                   [section]
                   variable = value


       LC_CONF_APACHE
              This type of configuration file is similar to the
              Apache configuration file.  An example configura-
              tion file:
                   <Section argument>
                        variable value
                   </Section>


       LC_CONF_SPACE
              This is a simple, flat  configuration  file.   It
              has no section headers.  An example configuration
              file:
                   variable value


RETURN VALUE
       On success 0 is returned, otherwise -1 is returned.


EXAMPLE
       #include <libconfig.h>
       #include <stdlib.h>
       #include <stdio.h>

       int main(int argc, char **argv) {
            int lc_p_ret, lc_rv_ret;
            char *filename = NULL;

            lc_rv_ret = lc_register_var("File", LC_VAR_STRING,
                                        &filename, 'f');
            if (lc_rv_ret != 0) {
                 fprintf(stderr, "Error registering variable: %i.\n",
                         lc_geterrno());
                 return(EXIT_FAILURE);
            }

            lc_p_ret = lc_process(argc, argv, "example", LC_CONF_APACHE,
                                  NULL);

            lc_cleanup();

            if (lc_p_ret != 0) {
                 fprintf(stderr, "Error processing configuration: \
                         %s\n", lc_geterrstr());
                 return(EXIT_FAILURE);
            }

            if (filename != NULL) {
                 printf("File specified was: %s\n", filename);
            } else {
                 printf("No filename specified.\n");
            }

            return(EXIT_SUCCESS);
       }


SEE ALSO
       lc_register_var(3),  lc_register_callback(3),  lc_geter-
       rno(3),          lc_geterrstr(3),         lc_cleanup(3),
       lc_process_file(3)



libconfig 0.1.16           25 Oct 04              LC_PROCESS(3)
