.TH LIBCONFIG 3 "25 Oct 04" "@PACKAGE_STRING@"
.SH NAME
libconfig \- Consistent configuration library.
.SH SYNOPSIS
.B #include <libconfig.h>
.sp
.BI "int lc_register_callback(const char *" var ", char " opt ", lc_var_type_t " type ", int (*" callback ")(const char *, const char *, const char *, const char *, lc_flags_t, void *), void *" extra ");"
.BI "int lc_register_var(const char *" var ", lc_var_type_t " type ", void *" data ", char " opt ");"
.BI "int lc_process(int " argc ", char **" argv ", const char *" appname ", lc_conf_type_t " type ", const char *" extra ");"
.BI "lc_err_t lc_geterrno(void);"
.BI "char *lc_geterrstr(void);"
.BI "void lc_geterrstr(const char *" errstr ");"
.SH DESCRIPTION
Libconfig is a library to provide easy access to configuration data in a consistent and logical manner. Variables (registered through
.BR lc_register_var (3)
or
.BR lc_register_callback (3))
are processed with the
.BR lc_process (3)
and
.BR lc_process_file (3)
functions. Errors can be examined through
.BR lc_geterrno (3)
and
.BR lc_geterrstr (3).
Clean-up may be performed using the
.BR lc_cleanup (3)
function.
.SH EXAMPLE
.nf
#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);
}
.fi
.SH "SEE ALSO"
.BR lc_register_var (3),
.BR lc_register_callback (3),
.BR lc_geterr (3),
.BR lc_geterrstr (3),
.BR lc_seterrstr (3),
.BR lc_cleanup (3),
.BR lc_process (3),
.BR lc_process_file (3)