5.4.45 mysql_library_init()
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_init(), который вызывает mysql_library_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;
}
Значения возврата
Ноль в случае успеха. Неноль, если произошла ошибка.
© 2025 Oracle
Licensed under the GPLv2 License.