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。