Skip to content

lua_Reader

lua_loadで使用されるリーダー関数です。

c
typedef const char * (*lua_Reader) (lua_State *L, void *data, size_t *size);

説明

lua_loadによって使用されるリーダー関数です。別のチャンクの部分が必要になるたびに、lua_loadはそのデータパラメータとともにリーダーを呼び出します。リーダーはチャンクの新しい部分を含むメモリブロックへのポインタを返し、sizeをブロックサイズに設定する必要があります。ブロックは、リーダー関数が再度呼び出されるまで存在する必要があります。チャンクの終わりを示すには、リーダーはNULLを返すか、sizeをゼロに設定する必要があります。リーダー関数はゼロより大きい任意のサイズの部分を返すことができます。

サンプルコード

c
const char *reader(lua_State *L, void *data, size_t *size) {
    const char *chunk = (const char *)data;
    *size = strlen(chunk);
    return chunk;
}

このコードは、lua_load用の単純なリーダー関数を定義しています。

互換性

  • Lua5.1

関連項目

  • lua_load
  • lua_Writer