Описания функций C, связанных с потоками
Эти функции необходимо вызывать для сборки клиента с поддержкой потоков. См. раздел Как создать клиентскую программу с потоками.
my_init()
void my_init(void)
Описание
Данную функцию необходимо вызывать однажды во время запуска программы перед вызовом любой функции MySQL. Ее вызовом инициализируются необходимые для MySQL глобальные переменные. При использовании клиентской библиотеки, поддерживающей потоки, эта функция будет также вызывать функцию mysql_thread_init() для этого потока.
Данная функция вызывается автоматически функциями mysql_init() , mysql_server_init() и mysql_connect() .
Возвращаемые величины
Нет.
mysql_thread_init()
my_bool mysql_thread_init(void)
Описание
Эту функцию необходимо вызывать для каждого созданного потока - для инициализации его специфических переменных.
Данная функция вызывается автоматически функциями my_init() и mysql_connect() .
Возвращаемые величины
Нет.
mysql_thread_end()
void mysql_thread_end(void)
Описание
Данную функцию необходимо вызывать перед вызовом функции pthread_exit() для освобождения памяти, выделенной функцией mysql_thread_init() .
Следует учитывать, что эта функция не вызывается автоматически клиентской библиотекой. Во избежание утечки памяти она должна вызываться явно.
Возвращаемые величины
Нет.
mysql_thread_safe()
unsigned int mysql_thread_safe(void)
Описание
Эта функция возвращает значение, показывающее, компилировался ли данный клиент как поддерживающий потоки.
Возвращаемые величины
1 - если данный клиент поддерживает потоки, 0 - в противном случае.
Описания функций C, доступных во встраиваемом сервере
Эти функции можно использовать при линковании с библиотекой встраиваемого сервера MySQL.
См. раздел libmysqld, встраиваемая библиотека сервера MySQL.
Если данная программа слинкована с -lmysqlclient , а не с -lmysqld , то эти функции не делают ничего. Это обеспечивает возможность выбора между встраиваемым сервером MySQL и автономным без какой-либо модификации кода.
mysql_server_init()
int mysql_server_init(int argc, char **argv, char **groups)
Описание
Данную функцию необходимо вызывать только один раз во время работы программы - перед вызовом любой другой функции MySQL. Она запускает сервер и инициализирует все подсистемы (mysys , InnoDB и т.д.), используемые сервером. Без вызова этой функции произойдет аварийное завершение данной программы. При использовании пакета DBUG , поставляемого вместе с MySQL, данную функцию следует вызывать после функции MY_INIT() .
Аргументы argc и argv аналогичны аргументам в main (). Первый элемент аргумента argv игнорируется (обычно он содержит имя программы). Для удобства аргумент argc может быть равен 0 (нуль) - если не задано ни одного аргумента командной строки для данного сервера.
Аргумент groups представляет собой список строк, заканчивающийся NULL . Этот аргумент задает активные группы в файлах опций (cм. раздел Файлы параметров 'my.cnf'). Для удобства аргумент groups может быть равен NULL - в этом случае будут активны группы [server] и [emedded] .
Пример
#include #include
static char *server_args[] = { "this_program", /* эта строка не используется */ "--datadir=.", "--set-variable=key_buffer_size=32M" };
static char *server_groups[] = { "embedded", "server", "this_program_SERVER", (char *)NULL };
int main(void) { mysql_server_init(sizeof(server_args) / sizeof(char *), server_args, server_groups); /* Здесь используются любые функции MySQL API */ mysql_server_end(); return EXIT_SUCCESS; }
Возвращаемые значения
0 - если все в порядке, 1 - если произошла ошибка.
mysql_server_end()
void mysql_server_end(void)
Описание
Эту функцию в программе необходимо вызывать только единожды, после всех остальных функций MySQL. Она останавливает libmysqld , встраиваемый сервер MySQL.
Возвращаемые значения
Нет.
1 2 3 4 5 6
8 8 8
| |