Skip to content

lua_cpcall

保護モードでC関数funcを呼び出します。

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

c
int lua_cpcall (lua_State *L, lua_CFunction func, void *ud);

説明

保護モードでC関数funcを呼び出します。funcはスタックにudを含むライトユーザーデータのみで開始します。エラーが発生した場合、lua_cpcalllua_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