このページの内容

補助関数と型:dofile–loadstring

luaL_dofile

[-0, +?, m]

int luaL_dofile (lua_State *L, const char *filename);

指定されたファイルを読み込んで実行します。次のマクロとして定義されています。

     (luaL_loadfile(L, filename) || lua_pcall(L, 0, LUA_MULTRET, 0))

エラーがなければ0(LUA_OK)を、エラーの場合は1を返します。(ただし、メモリ不足エラーは発生させます。)


luaL_dostring

[-0, +?, –]

int luaL_dostring (lua_State *L, const char *str);

指定された文字列を読み込んで実行します。次のマクロとして定義されています。

     (luaL_loadstring(L, str) || lua_pcall(L, 0, LUA_MULTRET, 0))

エラーがなければ0(LUA_OK)を、エラーの場合は1を返します。


luaL_error

[-0, +0, v]

int luaL_error (lua_State *L, const char *fmt, ...);

エラーを発生させます。エラーメッセージの形式は、lua_pushfstringと同じ規則に従うfmtとすべての追加引数によって指定されます。また、情報を利用できる場合、メッセージの先頭へエラーが起きたファイル名と行番号を追加します。

この関数が返ることはありませんが、C関数でreturn luaL_error(args)として使うのが慣用表現です。


luaL_execresult

[-0, +3, m]

int luaL_execresult (lua_State *L, int stat);

この関数は、標準ライブラリのプロセス関連関数(os.executeio.close)の戻り値を生成します。


luaL_fileresult

[-0, +(1|3), m]

int luaL_fileresult (lua_State *L, int stat, const char *fname);

この関数は、標準ライブラリのファイル関連関数(io.openos.renamefile:seekなど)の戻り値を生成します。


luaL_getmetafield

[-0, +(0|1), m]

int luaL_getmetafield (lua_State *L, int obj, const char *e);

インデックスobjのオブジェクトのメタテーブルからフィールドeをスタックへプッシュし、プッシュした値の型を返します。オブジェクトにメタテーブルがない場合、またはメタテーブルにこのフィールドがない場合は、何もプッシュせずLUA_TNILを返します。


luaL_getmetatable

[-0, +1, m]

int luaL_getmetatable (lua_State *L, const char *tname);

レジストリ内で名前tnameに関連付けられたメタテーブル(luaL_newmetatableを参照)をスタックへプッシュします。その名前に関連付けられたメタテーブルがなければnilをプッシュします。プッシュした値の型を返します。


luaL_getsubtable

[-0, +1, e]

int luaL_getsubtable (lua_State *L, int idx, const char *fname);

インデックスidxの値をtとしたとき、値t[fname]がテーブルであることを保証し、そのテーブルをスタックへプッシュします。以前からあるテーブルを見つけた場合はtrue、新しいテーブルを作成した場合はfalseを返します。


luaL_gsub

[-0, +1, m]

const char *luaL_gsub (lua_State *L,
                       const char *s,
                       const char *p,
                       const char *r);

文字列sのコピーを作成し、文字列pのすべての出現を文字列rへ置き換えます。結果の文字列をスタックへプッシュして返します。


luaL_len

[-0, +0, e]

lua_Integer luaL_len (lua_State *L, int index);

指定されたインデックスの値の「長さ」を数値として返します。Luaの’#’演算子と等価です(§3.4.7を参照)。操作の結果が整数でない場合はエラーを発生させます。(この場合はメタメソッドを通じてのみ起こり得ます。)


luaL_loadbuffer

[-0, +1, –]

int luaL_loadbuffer (lua_State *L,
                     const char *buff,
                     size_t sz,
                     const char *name);

modeNULLとしたluaL_loadbufferxと等価です。


luaL_loadbufferx

[-0, +1, –]

int luaL_loadbufferx (lua_State *L,
                      const char *buff,
                      size_t sz,
                      const char *name,
                      const char *mode);

バッファーをLuaチャンクとして読み込みます。この関数はlua_loadを使い、buffが指すサイズszのバッファー内のチャンクを読み込みます。

この関数はlua_loadと同じ結果を返します。nameはデバッグ情報とエラーメッセージに使われるチャンク名です。文字列modeは関数lua_loadと同様に動作します。特に、この関数は固定バッファー用のモード’B’をサポートします。


luaL_loadfile

[-0, +1, m]

int luaL_loadfile (lua_State *L, const char *filename);

modeNULLとしたluaL_loadfilexと等価です。


luaL_loadfilex

[-0, +1, m]

int luaL_loadfilex (lua_State *L, const char *filename,
                                            const char *mode);

ファイルをLuaチャンクとして読み込みます。この関数はlua_loadを使い、filenameという名前のファイル内のチャンクを読み込みます。filenameNULLなら、標準入力から読み込みます。ファイルの先頭行が#で始まる場合、その行を無視します。

文字列modeは関数lua_loadと同様に動作します。

この関数はlua_loadと同じ結果を返し、ファイル関連のエラーではLUA_ERRFILEを返します。

lua_loadと同様、この関数はチャンクを読み込むだけで、実行はしません。


luaL_loadstring

[-0, +1, –]

int luaL_loadstring (lua_State *L, const char *s);

文字列をLuaチャンクとして読み込みます。この関数はlua_loadを使い、ゼロ終端文字列s内のチャンクを読み込みます。

この関数はlua_loadと同じ結果を返します。

同じくlua_loadと同様、この関数はチャンクを読み込むだけで、実行はしません。