程序开发中与接口相关函数有哪些?
1个回答
2021-07-15 · 学动漫、设计、电竞、电商、短视频、软件等
关注
展开全部
标准输入输出库中用到的标准文件句柄结构。
文件句柄实现为一个完全用户数据, 其元表被称为 L UA_FILEHANDLE (LU A_FILEHANDLE 是一个代表真正元表的名字的宏)。 这张元表由标准输入输出库(参见 lu aL_newmetatable)创建。
用户数据必须以结构 lu aL_Stream 开头; 此结构其后可以包含任何其它数据。 f 域指向一个 C 数据流 (如果它为 NULL 表示一个没有创建好的句柄)。 closef 域指向一个在关闭或回收该流时需要调用的 L ua 函数。 该函数将收到一个参数,即文件句柄。 它需要返回 true(操作成功)或 nil 加错误消息(出错的时候)。 一旦 Lua 调用过这个域,该域的值就会修改为 NULL 以提示这个句柄已经被关闭了。
将给定索引处的 L ua 值转换为一个相应格式的 C 字符串。 结果串不仅会压栈,还会由函数返回。 如果 len 不为 NULL , 它还把字符串长度设到 *len 中。
如果该值有一个带 "__tostring" 域的元表, l uaL_tolstring 会以该值为参数去调用对应的元方法, 并将其返回值作为结果。
将栈 L1 的栈回溯信息压栈。 如果 msg 不为 NULL ,它会附加到栈回溯信息之前。 level 参数指明从第几层开始做栈回溯。
释放索引 t 处表的 ref 引用对象 (参见 lu aL_ref )。 此条目会从表中移除以让其引用的对象可被垃圾收集。 而引用 ref 也被回收再次使用。
0 层指当前正在运行的函数, 1 层指调用正在运行函数的函数, 依次类推。
这个函数用于构建错误消息的前缀。
标准库提供了一些有用的函数, 它们都是直接用 C API 实现的。 其中一些函数提供了原本语言就有的服务 (例如,type 与 getmetatable); 另一些提供和“外部”打交道的服务(例如 I/O ); 还有些本可以用 Lu a 本身来实现,但在 C 中实现可以满足关键点上的性能需求 (例如 table.sort)。
所有的库都是直接用 C API 实现的,并以分离的 C 模块形式提供。
除了基础库和包管理库, 其它库都把自己的函数放在一张全局表的域中, 或是以对象方法的形式提供。
要使用这些库, C 的宿主程序需要先调用一下 lu aL_openlibs 这个函数, 这样就能打开所有的标准库。
文件句柄实现为一个完全用户数据, 其元表被称为 L UA_FILEHANDLE (LU A_FILEHANDLE 是一个代表真正元表的名字的宏)。 这张元表由标准输入输出库(参见 lu aL_newmetatable)创建。
用户数据必须以结构 lu aL_Stream 开头; 此结构其后可以包含任何其它数据。 f 域指向一个 C 数据流 (如果它为 NULL 表示一个没有创建好的句柄)。 closef 域指向一个在关闭或回收该流时需要调用的 L ua 函数。 该函数将收到一个参数,即文件句柄。 它需要返回 true(操作成功)或 nil 加错误消息(出错的时候)。 一旦 Lua 调用过这个域,该域的值就会修改为 NULL 以提示这个句柄已经被关闭了。
将给定索引处的 L ua 值转换为一个相应格式的 C 字符串。 结果串不仅会压栈,还会由函数返回。 如果 len 不为 NULL , 它还把字符串长度设到 *len 中。
如果该值有一个带 "__tostring" 域的元表, l uaL_tolstring 会以该值为参数去调用对应的元方法, 并将其返回值作为结果。
将栈 L1 的栈回溯信息压栈。 如果 msg 不为 NULL ,它会附加到栈回溯信息之前。 level 参数指明从第几层开始做栈回溯。
释放索引 t 处表的 ref 引用对象 (参见 lu aL_ref )。 此条目会从表中移除以让其引用的对象可被垃圾收集。 而引用 ref 也被回收再次使用。
0 层指当前正在运行的函数, 1 层指调用正在运行函数的函数, 依次类推。
这个函数用于构建错误消息的前缀。
标准库提供了一些有用的函数, 它们都是直接用 C API 实现的。 其中一些函数提供了原本语言就有的服务 (例如,type 与 getmetatable); 另一些提供和“外部”打交道的服务(例如 I/O ); 还有些本可以用 Lu a 本身来实现,但在 C 中实现可以满足关键点上的性能需求 (例如 table.sort)。
所有的库都是直接用 C API 实现的,并以分离的 C 模块形式提供。
除了基础库和包管理库, 其它库都把自己的函数放在一张全局表的域中, 或是以对象方法的形式提供。
要使用这些库, C 的宿主程序需要先调用一下 lu aL_openlibs 这个函数, 这样就能打开所有的标准库。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询