You are here : Cmysql/mysql.hmysql_library_init

mysql_library_init() - mysql/mysql.h

 Call this function to initialize the MySQL library before you
        call any other MySQL function, whether your application is a
        regular client program or uses the embedded server. If the
        application uses the embedded server, this call starts the
        server and initializes any subsystems (mysys,
        InnoDB, and so forth) that the server uses.mysysInnoDBAfter your application is done using the MySQL library, call
        mysql_library_end() to clean up.
        See Section 25.8.7.40, “mysql_library_end()”.mysql_library_end()mysql_library_end()Section 25.8.7.40, “mysql_library_end()”The choice of whether the application operates as a regular
        client or uses the embedded server depends on whether you use
        the libmysqlclient or
        libmysqld library at link time to produce the
        final executable. For additional information, see
        Section 25.8.6, “C API Function Overview”.libmysqlclientlibmysqldSection 25.8.6, “C API Function Overview”In a nonmulti-threaded environment, the call to
        mysql_library_init() may be
        omitted, because mysql_init()
        will invoke it automatically as necessary. However,
        mysql_library_init() is not
        thread-safe in a multi-threaded environment, and thus neither is
        mysql_init(), which calls
        mysql_library_init(). You must
        either call mysql_library_init()
        prior to spawning any threads, or else use a mutex to protect
        the call, whether you invoke
        mysql_library_init() or
        indirectly through mysql_init().
        Do this prior to any other client library call.mysql_library_init()mysql_library_init()mysql_init()mysql_init()mysql_library_init()mysql_library_init()mysql_init()mysql_init()mysql_library_init()mysql_library_init()mysql_library_init()mysql_library_init()mysql_library_init()mysql_library_init()mysql_init()mysql_init()The argc and argv
        arguments are analogous to the arguments to
        main(), and enable passing of options to the
        embedded server. For convenience, argc may be
        0 (zero) if there are no command-line
        arguments for the server. This is the usual case for
        applications intended for use only as regular (nonembedded)
        clients, and the call typically is written as
        mysql_library_init(0, NULL,
        NULL).argcargvmain()argc0mysql_library_init(0, NULL,
        NULL)mysql_library_init(0, NULL,
        NULL)#include 
#include 

int main(void) {
  if (mysql_library_init(0, NULL, NULL)) {
    fprintf(stderr, "could not initialize MySQL library
");
    exit(1);
  }

  /* Use any MySQL API functions here */

  mysql_library_end();

  return EXIT_SUCCESS;
}When arguments are to be passed (argc is
        greater than 0), the first element of
        argv is ignored (it typically contains the
        program name).
        mysql_library_init() makes a
        copy of the arguments so it is safe to destroy
        argv or groups after the
        call.argc0argvmysql_library_init()mysql_library_init()argvgroupsFor embedded applications, if you want to connect to an external
        server without starting the embedded server, you have to specify
        a negative value for argc.argcThe groups argument is an array of strings
        that indicate the groups in option files from which to read
        options. See Section 5.2.6, “Using Option Files”. Make the final
        entry in the array NULL. For convenience, if
        the groups argument itself is
        NULL, the [server] and
        [embedded] groups are used by default.groupsSection 5.2.6, “Using Option Files”NULLgroupsNULL[server][embedded]#include 
#include 

static char *server_args[] = {
  "this_program",       /* this string is not used */
  "--datadir=.",
  "--key_buffer_size=32M"
};
static char *server_groups[] = {
  "embedded",
  "server",
  "this_program_SERVER",
  (char *)NULL
};

int main(void) {
  if (mysql_library_init(sizeof(server_args) / sizeof(char *),
                        server_args, server_groups)) {
    fprintf(stderr, "could not initialize MySQL library
");
    exit(1);
  }

  /* Use any MySQL API functions here */

  mysql_library_end();

  return EXIT_SUCCESS;
}


Syntax

int mysql_library_init(int argc, char **argv, char
        **groups)


Example

#include <mysql.h>
#include <stdlib.h>

int main(void) {
  if (mysql_library_init(0, NULL, NULL)) {
    fprintf(stderr, "could not initialize MySQL library\n");
    exit(1);
  }

  /* Use any MySQL API functions here */

  mysql_library_end();

  return EXIT_SUCCESS;
}


Output / Return Value

 Zero for success. Nonzero if an error occurred.


Limitations


Alternatives / See Also


Reference