luaL_Stream

  1. typedef struct luaL_Stream {
  2. FILE *f;
  3. lua_CFunction closef;
  4. } luaL_Stream;

标准输入输出库中用到的标准文件句柄结构。

文件句柄实现为一个完全用户数据,其元表被称为 LUA_FILEHANDLELUA_FILEHANDLE 是一个代表真正元表的名字的宏)。这张元表由标准输入输出库(参见 luaL_newmetatable)创建。

用户数据必须以结构 luaL_Stream 开头;此结构其后可以包含任何其它数据。f 域指向一个 C 数据流(如果它为 NULL 表示一个没有创建好的句柄)。closef 域指向一个在关闭或回收该流时需要调用的 Lua 函数。该函数将收到一个参数,即文件句柄。它需要返回 true(操作成功)或nil 加错误消息(出错的时候)。一旦 Lua 调用过这个域,该域的值就会修改为 NULL以提示这个句柄已经被关闭了。