参考手册 - 5 - 标准库[8-操作系统设备,9-调试库]

1430阅读 0评论2013-01-24 qiushui_007
分类:

5.8 -

该库通过表实现。


返回程序已用的CPU时间的近似值,以秒为单位。


返回含有日期和时间的字符串或表,依据给定字符串format格式化。

如果存在参数time,这是要被格式化的时间(对该值的描述间函数)。否则,date格式化当前时间。

如果format以‘!’开头,则日期被格式化为CUT(Coordinated Universal Time)。在该可选的字符后,如果format是字符串“*t”,则date返回带有下面的字段的表:year (四位数字),month (1--12),day (1--31),hour (0--23),min (0--59),sec (0--61),wday (一周中的第几天,周日是1),yday (年中的第几天)和isdst (日光节约时间标记,布尔值)。

如果format不是*t”,则date返回日期字符串,依据同C函数strftime一样的规则格式化。

当不带参数调用时,date返回一个合理的日期和时间表示,依赖于主机系统和当前locale(就是说,os.date()等价于os.date("%c"))。


返回从时间t1到时间t2的秒数。在POSIX、Windows和一些其他系统中,该值恰是t2-t1


os.execute ([command])

该函数等价于C函数system。它传入command给操作系统的shell执行。它返回一个依赖系统的状态码。如果省略command,则如果shell可用会返回非0值否则否则返回0。


调用C函数exit结束宿主程序,可带个可选的codecode的缺省值是成功代码。


返回进程环境变量varname的值,如果变量未定义则返回nil


删除给定名字的文件或目录。要删除的目录必须为空。如果失败,该函数返回nil以及一条描述错误的字符串。


把名为oldname文件或目录重命名为newname。如果失败,该函数返回nil以及一条描述错误的字符串。


设置程序的当前locale。locale是个指定locale的字符串;category是可选的字符串,描述了要变更哪个类别:"all""collate""ctype""monetary""numeric""time";缺省 category 是"all"。函数返回新locale的名字,如果请求不被认可则返回nil

如果locale是空字符串,当前locale被设为定义了本地locale的实现。如果locale是字符串“C”,当前locale被设为标准的C locale。

当以nil作为第一参数调用时,该函数只返回给定类别的当前locale的名字。


当无参调用时返回当前时间,或者返回表示了给定表指定的日期和时间的时间。该表必须具有字段yearmonthday,并且可以具有字段hourminsecisdst(对于这些字段的描述,见函数)。

返回值是个数字,它的含义依赖于你的系统。在POSIX、Windows和某些其他系统中,该数计数自某个给定起始时间(epoch)以来的秒数。在其他系统中,含义是未指定的,而且time返回的数字只能用作datedifftime的参数。


返回一个带文件名的字符串,该名字可被用于临时文件。文件在使用前必须显式地打开,并且必须在不再需要时显式地删除。

5.9 -

该库向Lua程序提供调试接口功能。使用该库时你应该异常小心。这儿提供的函数应该专门用于调试和类似的任务,比如profiling。请忍住把它们用作 一般编程工具的诱惑:它们非常的慢。而且,这些函数中的一些违反了关于Lua代码的某些假定(例如,函数的局部变量不能从外面访问,或者,用户数据的元表 不能被Lua代码改变)并且因此会损害其他的安全代码。

该库的所有函数在表中提供。所有操作一个线程的函数具有可选的第一参数,它是被操作的线程。缺省总是当前线程。


进入同用户的交互模式,运行用户输入的每个字符串。使用简单的命令和其他调试设备,用户能够检查全局和局部变量,改变它们的值,计算表达式,等等。只含有单词cont的行终止该函数,这样调用者继续它的执行。

注意,debug.debug的命令不是任何函数的内部词汇,因此没有对本地变量的直接访问。


返回对象o的环境。


返回线程的当前hook设定,作为三个值:当前hook函数、当前hook掩码和当前hook计数(由函数设置)。


返回带有函数信息的表。你可直接给出函数,或者给出一个数字作为function的值,它表示给定线程的调用栈中运行于级别function的函数:级别0是当前函数(getinfo自己);级别1是调用getinfo的函数;依次类推。如果function是个比活动的函数数量大的数字,则getinfo返回nil

返回的表可包含返回的所有字段,字符串what描述要填充的字段。what默认获取所有可用信息,除了有效行的表。如果提供,选项‘f’增加名为func的字段,值为函数自己。如果存在,选项‘L’增加名为activelines的字段,值为有效行的表。

例如,表达式debug.getinfo(1,"n").name返回一个表,其中含有当前函数的名字——如果可以找到合理的名字;表达式debug.getinfo(print)返回带有函数的所有可用信息的表。


该函数返回栈中level级处的函数的索引为local的局部变量的名字和值。(第一个参数或局部变量索引为1,依次类推,直到最后一个活动的局部变量。)如果没有给定索引的局部变量,该函数返回nil,并且当以超出范围的level调用时抛出错误。(可调用来检查级别是否有效。)

以‘(’(开圆括号)开头的变量名表示内部变量(循环控制变量、临时变量和C函数局部变量)。


返回给定对象object的元表,或者如果没有元表返回nil


返回注册表(见)。


该函数返回函数func的索引为up的upvalue的名字和值。如果没有给定索引的upvalue则返回nil


设置给定object的环境为给定的table。返回object


设置给定函数作为hook。字符串mask和数字count描述hook何时被调用。字符串掩码可具有下面带有给定含义的字符:

带非0的count时,hook在每count条指令后被调用。

当无参调用时,关闭hook。

当hook被调用时,其第一参数是描述触发其调用的事件的字符串:"call""return"(或"tail return")、"line""count"。对于行事件,hook也获得新行数为其第二参数。在hook内部,你可以级别2调用getinfo来获得正运行的函数的信息(级别0是函数getinfo并且级别1是hook函数),除非事件是"tail return"。该情况下,Lua只是模拟返回,而且调用getinfo将返回无效数据。


该函数把栈中level级函数中索引为local的局部变量赋值为value。如果没有给定索引的局部变量则返回nil,并且当以超出范围的level调用时抛出错误。(你可调用getinfo检查级别是否有效。)否则返回局部变量的名字。


设置给定object的元表为给定table(可为nil)。


该函数给func函数中索引为up的upvalue赋值value。如果没有给定索引的upvalue则返回nil。否则返回upvalue的名字。


返回带有调用栈的回溯的字符串。可选的字符串message被附加到回溯的开头。可选的数字level表明在哪个级别开始回溯(缺省是1,调用traceback的函数)。

上一篇:参考手册 - 5 - 标准库[5-表操作,6-数学运算函数,7-输入输出设备]
下一篇:二进制实用程序(objdump, readelf,ar, nm等)(收藏)