文書の出典
- 出典
- Lua 5.5.1 Documentation
- 上流バージョン
- Lua 5.5.1
- 文書状態
- 翻訳
4 – アプリケーションプログラムインターフェース
この節ではLuaのC API、すなわちホストプログラムがLuaと通信するために利用できるC関数群を説明します。すべてのAPI関数と関連する型および定数は、ヘッダーファイルlua.hで宣言されています。
ここで「関数」という用語を使っていても、APIの機能が代わりにマクロとして提供される場合があります。特に記載がない限り、そのようなすべてのマクロは各引数をちょうど一度だけ使用し(常にLuaステートである第1引数を除く)、隠れた副作用を生じさせません。
ほとんどのCライブラリと同様、Lua APIの関数は引数の有効性や一貫性を検査しません。ただし、マクロLUA_USE_APICHECKを定義してLuaをコンパイルすれば、この動作を変更できます。
Luaライブラリは完全に再入可能で、グローバル変数を持ちません。必要なすべての情報は、Luaステートと呼ばれる動的な構造に保持します。
各Luaステートは、独立した協調的な実行系列に対応する1つ以上のスレッドを持ちます。型lua_Stateは(その名前とは異なり)スレッドを参照します。(スレッドを介して間接的に、そのスレッドに関連付けられたLuaステートも参照します。)
ライブラリのすべての関数には、スレッドへのポインターを第1引数として渡す必要があります。ただし、Luaステートを一から作成し、新しいステートのメインスレッドへのポインターを返すlua_newstateは例外です。