Changes To Manual for lc_process

Changes to "Manual for lc_process" between 2014-11-24 20:10:45 and 2014-11-24 20:11:49












































































































1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<H2>NAME</H2>
lc_process - Begin processing configuration files.
<P>
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<B>#include &lt;<A HREF="artifact/7c61a9805e664fde7943807af8d5e164e7cebdb6">libconfig.h</A>&gt;</B>
<P>
<B>int lc_process(int </B><I>argc</I><B>, char **</B><I>argv</I><B>, const char *</B><I>appname</I><B>, lc_conf_type_t </B><I>type</I><B>, const char *</B><I>extra</I><B>);</B>
<P>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
The
<B><A HREF="wiki/Manual for lc_process">lc_process</A></B>(3)
function begins processing of the command line arguments, environment variables, and command line options.
The
<I>argc</I>
and
<I>argv</I>
parameters should be in the same format as passed to the
<B>main</B>
function of your program.
The
<I>appname</I>
parameter should be a reasonable form of the name of the application.
The
<I>type</I>
parameter should describe the format of the configuration file (see below).
The
<I>extra</I>
parameter should list any extra configuration files to process.
<P>
Valid type parameter values:
<DL COMPACT>
<DT>LC_CONF_SECTION<DD>
This type of configuration file is similar to the Windows INI-file style.
An example configuration file:
<PRE>
        &#91;section&#93;
        variable = value
</PRE>
<P>
<DT>LC_CONF_APACHE<DD>
This type of configuration file is similar to the Apache configuration file.
An example configuration file:
<PRE>
        &lt;Section argument&gt;
                variable value
        &lt;/Section&gt;
</PRE>
<P>
<DT>LC_CONF_SPACE<DD>
This is a simple, flat configuration file.  It has no section headers.
An example configuration file:
<PRE>
        variable value
</PRE>
<P>
</DL>
<A NAME="lbAE">&nbsp;</A>
<H2>RETURN VALUE</H2>
On success 0 is returned, otherwise -1 is returned.
<P>
<A NAME="lbAF">&nbsp;</A>
<H2>EXAMPLE</H2>
<PRE>
#include &lt;<A HREF="artifact/7c61a9805e664fde7943807af8d5e164e7cebdb6">libconfig.h</A>&gt;
#include &lt;<A HREF="file:/usr/include/stdlib.h">stdlib.h</A>&gt;
#include &lt;<A HREF="file:/usr/include/stdio.h">stdio.h</A>&gt;
int main(int argc, char **argv) {
        int lc_p_ret, lc_rv_ret;
        char *filename = NULL;
        lc_rv_ret = lc_register_var(&quot;File&quot;, LC_VAR_STRING,
                                    &amp;filename, 'f');
        if (lc_rv_ret != 0) {
                fprintf(stderr, &quot;Error registering variable: %i.\n&quot;,
                        lc_geterrno());
                return(EXIT_FAILURE);
        }
        lc_p_ret = lc_process(argc, argv, &quot;example&quot;, LC_CONF_APACHE,
                              NULL);
        lc_cleanup();
        if (lc_p_ret != 0) {
                fprintf(stderr, &quot;Error processing configuration: \
                        %s\n&quot;, lc_geterrstr());
                return(EXIT_FAILURE);
        }
        if (filename != NULL) {
                printf(&quot;File specified was: %s\n&quot;, filename);
        } else {
                printf(&quot;No filename specified.\n&quot;);
        }
        return(EXIT_SUCCESS);
}
</PRE>
<P>
<A NAME="lbAG">&nbsp;</A>
<H2>SEE ALSO</H2>
<B><A HREF="wiki/Manual">libconfig</A></B>(3),
<B><A HREF="wiki/Manual for lc_register_var">lc_register_var</A></B>(3),
<B><A HREF="wiki/Manual for lc_register_callback">lc_register_callback</A></B>(3),
<B><A HREF="wiki/Manual for lc_geterrno">lc_geterrno</A></B>(3),
<B><A HREF="wiki/Manual for lc_geterrstr">lc_geterrstr</A></B>(3),
<B><A HREF="wiki/Manual for lc_seterrstr">lc_seterrstr</A></B>(3),
<B><A HREF="wiki/Manual for lc_handle_type">lc_handle_type</A></B>(3),
<B><A HREF="wiki/Manual for lc_process_file">lc_process_file</A></B>(3),
<B><A HREF="wiki/Manual for lc_cleanup">lc_cleanup</A></B>(3)
<P>