lua_load
Luaチャンクをロードしますが、実行はしません。
[-0, +1, -]
c
int lua_load (lua_State *L, lua_Reader reader, void *data, const char *chunkname);説明
Luaチャンクをロードします。エラーがなければ、lua_loadはコンパイルされたチャンクをLua関数としてスタックの上にプッシュします。そうでなければ、エラーメッセージをプッシュします。lua_loadの戻り値は以下の通りです:
- 0: エラーなし
LUA_ERRSYNTAX: 前処理中の構文エラーLUA_ERRMEM: メモリ割り当てエラー
この関数はチャンクをロードするだけで、実行はしません。
lua_loadはチャンクがテキストかバイナリかを自動的に検出し、それに応じてロードします(プログラムluacを参照)。
lua_load関数はユーザー提供のリーダー関数を使用してチャンクを読み込みます(lua_Reader参照)。data引数はリーダー関数に渡される不透明な値です。
chunkname引数はチャンクに名前を与え、エラーメッセージやデバッグ情報で使用されます。
サンプルコード
c
int result = lua_load(L, reader_function, NULL, "chunk_name");
if (result == LUA_ERRSYNTAX) {
fprintf(stderr, "構文エラーが発生しました\n");
}このコードは、reader_functionを使ってLuaチャンクをロードし、構文エラーがあればメッセージを表示します。
互換性
- Lua5.1
関連項目
- luaL_loadfile
- luaL_dofile