int mysql_library_init(int argc, char **argv, char
**groups)
説明
他のMySQL機能を呼び出す前に、この機能をMySQライブラリを初期化するために呼び出すべきです。アプリケーションが埋め込みサーバーを使っている場合、この呼び出しはサーバを立ち上げ、サーバが使うサブシステム(mysys、InnoDB等)を初期化します。
アプリケーションがMySQLライブラリを使って実行された後、mysql_library_end()を呼び出してクリーンアップしてください。項23.2.3.40. 「mysql_library_init()」を参照してください。
非マルチスレッド環境では、mysql_library_init()へのコールは除かれる恐れがあります。なぜならmysql_init()は必要に応じてそれを自動的に呼び出すからです。しかしながら、マルチスレッドの環境では、もしmysql_library_init()が、mysql_library_init()はスレッドにとって安全でないことを理由に、mysql_library_init()によって取り出される場合、競合条件が可能です。それ故に、他のクライアントライブラリを呼び出すの前に、それを呼びだすべきです。
argc引数とargv引数は、main()に対する引数と類似しています。argvの最初の要素は無視されます。(それには大抵プログラム名が含まれています)。便利にするため、もしサーバに対するコマンドーライン引数がない場合、argc
は0(ゼロ)であることが許されます。mysql_library_init()は引数のコピーを作るので、呼び出し後に起こるargvまたはgroupsの破壊に対して安全になります。
埋め込みサーバを立ち上げることなく、外部サーバに接続したい場合、argc対してネガテブな値を規定しなければなりません。
groups引数を、そこからオプションを読み取るべきオプションファイル内のグループを示すストリングのアレーにすべきです。項3.3.2. 「オプションファイルの使用」を参照してください。配列への最終入力をNULLにすべきです。groups引数がNULLである場合、便利にするため、[server]グループと[embedded]グループが初期設定によって使われます。
追加使用情報については、項23.2.2. 「C API機能の概要。」をご参照ください。
例
#include <mysql.h>
#include <stdlib.h>
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\n");
exit(1);
}
/* Use any MySQL API functions here */
mysql_library_end();
return EXIT_SUCCESS;
}
戻り値
Okなら0、エラーが起こったら1。
