int
mysql_library_init(int argc,
char **argv,
char **groups)
Call this function to initialize the MySQL client library before you call any other MySQL function.
To avoid memory leaks after the application is done using
the library (for example, after closing the connection to
the server), be sure to call
mysql_library_end()
explicitly. This enables memory managment to be performed to
clean up and free resources used by the library. See
Section 5.4.44, “mysql_library_end()”.
In a nonmultithreaded environment, the call to
mysql_library_init()
may be
omitted, because mysql_init()
invokes it automatically as necessary. However,
mysql_library_init()
is not
thread-safe in a multithreaded 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.
The argc
, argv
, and
groups
arguments are unused. In older MySQL
versions, they were used for applications linked against the
embedded server, which is no longer supported. The call now
should be written as
mysql_library_init(0, NULL,
NULL)
.
#include <mysql.h>
#include <stdlib.h>
int main(void) {
if (mysql_library_init(0, NULL, NULL)) {
fprintf(stderr, "could not initialize MySQL client library\n");
exit(1);
}
/* Use any MySQL API functions here */
mysql_library_end();
return EXIT_SUCCESS;
}