Artifact [eb1b53097b]

Artifact eb1b53097bb45c6b80b81d889a4d47de946ea7ef:

Wiki page [Manual for lc_cleanup] by rkeene on 2014-11-24 20:11:48.
D 2014-11-24T20:11:48.401
L Manual\sfor\slc_cleanup
P de3505192fe7f8c07bc2b632e7488fba2faadb52
U rkeene
W 3037
<H2>NAME</H2>
lc_cleanup - Clean up internal structures after processing data.
<P>
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<B>#include &lt;<A HREF="artifact/7c61a9805e664fde7943807af8d5e164e7cebdb6">libconfig.h</A>&gt;</B>
<P>
<B>void lc_cleanup(void);</B>
<P>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
The
<B><A HREF="wiki/Manual for lc_cleanup">lc_cleanup</A></B>(3)
function cleans up the internal structures created by calling
<B><A HREF="wiki/Manual for lc_register_var">lc_register_var</A></B>(3)
or
<B><A HREF="wiki/Manual for lc_register_callback">lc_register_callback</A></B>(3)
and returns the memory to the application.  It is not strictly required, however memory concious programmers will still want to call this after finishing processing configuration files.
<P>
After you call
<B><A HREF="wiki/Manual for lc_cleanup">lc_cleanup</A></B>(3)
calling
<B><A HREF="wiki/Manual for lc_process">lc_process</A></B>(3)
or
<B><A HREF="wiki/Manual for lc_process_file">lc_process_file</A></B>(3)
will generally cause errors since the registered variables and callbacks have been unregistered.
<P>
<A NAME="lbAE">&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="lbAF">&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">lc_process</A></B>(3),
<B><A HREF="wiki/Manual for lc_process_file">lc_process_file</A></B>(3)
<P>

Z 577db524b07d7cb0ab909cad81532dc2