PDF (美式信紙) - 1.4Mb
PDF (A4) - 1.4Mb
int
mysql_library_init(int argc,
char **argv,
char **groups)
在您呼叫任何其他 MySQL 函數之前,請呼叫此函數以初始化 MySQL 客戶端程式庫。
注意
為了避免應用程式在使用程式庫後(例如,在關閉與伺服器的連線後)發生記憶體洩漏,請務必明確呼叫 mysql_library_end()
。這可以讓記憶體管理執行清理並釋放程式庫使用的資源。請參閱 第 5.4.44 節,「mysql_library_end()」。
在非多執行緒環境中,可以省略對 mysql_library_init()
的呼叫,因為 mysql_init()
會在必要時自動調用它。但是,mysql_library_init()
在多執行緒環境中不是執行緒安全的,因此呼叫 mysql_library_init()
的 mysql_init()
也不是執行緒安全的。您必須在產生任何執行緒之前呼叫 mysql_library_init()
,或者使用互斥鎖來保護呼叫,無論您是直接調用 mysql_library_init()
還是間接透過 mysql_init()
調用。請在任何其他客戶端程式庫呼叫之前執行此操作。
argc
、argv
和 groups
引數未使用。在舊版的 MySQL 中,它們用於連結到嵌入式伺服器的應用程式,但現在不再支援。現在應該將呼叫寫為 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;
}