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;
}