文件首頁
MySQL 8.4 C API 開發者指南
下載本手冊
PDF (美式信紙) - 1.4Mb
PDF (A4) - 1.4Mb


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_library_init()mysql_init() 也不是執行緒安全的。您必須在產生任何執行緒之前呼叫 mysql_library_init(),或者使用互斥鎖來保護呼叫,無論您是直接調用 mysql_library_init() 還是間接透過 mysql_init() 調用。請在任何其他客戶端程式庫呼叫之前執行此操作。

argcargvgroups 引數未使用。在舊版的 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;
}

傳回值

成功時傳回零。發生錯誤時傳回非零值。