lua_cpcall
保護モードでC関数funcを呼び出します。
[-0, +(0|1), -]
c
int lua_cpcall (lua_State *L, lua_CFunction func, void *ud);説明
保護モードでC関数funcを呼び出します。funcはスタックにudを含むライトユーザーデータのみで開始します。エラーが発生した場合、lua_cpcallはlua_pcallと同じエラーコードを返し、スタックの上部にエラーオブジェクトを返します。そうでない場合はゼロを返し、スタックを変更しません。funcによって返されたすべての値は破棄されます。
サンプルコード
c
int result = lua_cpcall(L, my_func, NULL);
if (result != 0) {
fprintf(stderr, "エラー: %s\n", lua_tostring(L, -1));
}このコードは、my_funcを保護モードで呼び出し、エラーが発生した場合にはエラーメッセージを表示します。
互換性
- Lua5.1
関連項目
- lua_pcall
- lua_call