Library initialization and termination

Overview

String and memory functions More…

// global functions

apr_status_t
apr_initialize(void);

apr_status_t
apr_app_initialize(
    int* argc,
    char const*const** argv,
    char const*const** env
);

void
apr_terminate(void);

void
apr_terminate2(void);

Detailed Documentation

String and memory functions

Global Functions

apr_status_t
apr_initialize(void)

Setup any APR internal data structures. This MUST be the first function called for any APR library. It is safe to call apr_initialize several times as long as apr_terminate is called the same number of times. See apr_app_initialize if this is an application, rather than a library consumer of apr.

apr_status_t
apr_app_initialize(
    int* argc,
    char const*const** argv,
    char const*const** env
)

Set up an application with normalized argc, argv (and optionally env) in order to deal with platform-specific oddities, such as Win32 services, code pages and signals. This must be the first function called for any APR program. See apr_initialize if this is a library consumer of apr. Otherwise, this call is identical to apr_initialize, and must be closed with a call to apr_terminate at the end of program execution.

Parameters:

argc

Pointer to the argc that may be corrected

argv

Pointer to the argv that may be corrected

env

Pointer to the env that may be corrected, may be NULL

void
apr_terminate(void)

Tear down any APR internal data structures which aren’t torn down automatically. apr_terminate must be called once for every call to apr_initialize() or apr_app_initialize(). An APR program must call this function at termination once it has stopped using APR services. The APR developers suggest using atexit to ensure this is called. When using APR from a language other than C that has problems with the calling convention, use apr_terminate2() instead.

void
apr_terminate2(void)

Tear down any APR internal data structures which aren’t torn down automatically, same as apr_terminate An APR program must call either the apr_terminate or apr_terminate2 function once it it has finished using APR services. The APR developers suggest using atexit(apr_terminate) to ensure this is done. apr_terminate2 exists to allow non-c language apps to tear down apr, while apr_terminate is recommended from c language applications.