Spec-Zone.ru › MySQL Connectors 1.0

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.
https://docs.oracle.com/cd/E17952_01/c-api-8.0-en/mysql-library-init.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API