このページの内容

6.1 – Cコードでのライブラリの読み込み

Cのホストプログラムでスクリプトから標準ライブラリを使用するには、そのライブラリをステートへ明示的に読み込む必要があります。そのために、ホストプログラムは関数luaL_openlibsを呼び出せます。あるいは、luaL_openselectedlibsを使って、開くライブラリを選択できます。どちらの関数もヘッダーファイルlualib.hで宣言されています。

スタンドアロンインタープリターlua§7を参照)は、すべての標準ライブラリをすでに開いています。


luaL_openlibs

[-0, +0, e]

void luaL_openlibs (lua_State *L);

指定されたステートですべてのLua標準ライブラリを開きます。


luaL_openselectedlibs

[-0, +0, e]

void luaL_openselectedlibs (lua_State *L, int load, int preload);

ステートLで、選択した標準ライブラリを開き(ロードし)、またはプリロードします。(プリロードとは、ライブラリーローダーをテーブルpackage.preloadへ追加し、後からプログラムがそのライブラリをrequireできるようにすることです。require自体はpackageライブラリによって提供される点に注意してください。プログラムがそのライブラリを読み込まなければ、何もrequireできません。)

整数loadは読み込むライブラリを選びます。整数preloadは、読み込まれなかったライブラリのうち、プリロードするものを選びます。どちらも、次の定数をビット単位ORで組み合わせたマスクです。

  • LUA_GLIBK:基本ライブラリ。
  • LUA_LOADLIBK:パッケージライブラリ。
  • LUA_COLIBK:コルーチンライブラリ。
  • LUA_STRLIBK:文字列ライブラリ。
  • LUA_UTF8LIBK:UTF-8ライブラリ。
  • LUA_TABLIBK:テーブルライブラリ。
  • LUA_MATHLIBK:数学ライブラリ。
  • LUA_IOLIBK:I/Oライブラリ。
  • LUA_OSLIBK:オペレーティングシステムライブラリ。
  • LUA_DBLIBK:デバッグライブラリ。