Press CTRL+C to copyint 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_init()
调用
mysql_library_init()
. 您必须
mysql_library_init()
在生成任何线程之前调用,或者使用互斥锁来保护调用,无论您是调用
mysql_library_init()
还是间接通过
mysql_init()
. 在任何其他客户端库调用之前执行此操作。
、argc
和参数未使用argv
。
groups
在较旧的 MySQL 版本中,它们用于链接到不再受支持的嵌入式服务器的应用程序。现在的调用应该写成
mysql_library_init(0, NULL,
NULL)
.
Press CTRL+C to copy#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; }