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
结束宿主程序,可带个可选的code
。code
的缺省值是成功代码。
返回进程环境变量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的名字。
当无参调用时返回当前时间,或者返回表示了给定表指定的日期和时间的时间。该表必须具有字段year
、month
和day
,并且可以具有字段hour
、min
、sec
和isdst
(对于这些字段的描述,见函数)。
返回值是个数字,它的含义依赖于你的系统。在POSIX、Windows和某些其他系统中,该数计数自某个给定起始时间(epoch)以来的秒数。在其他系统中,含义是未指定的,而且time
返回的数字只能用作date
和difftime
的参数。
返回一个带文件名的字符串,该名字可被用于临时文件。文件在使用前必须显式地打开,并且必须在不再需要时显式地删除。
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何时被调用。字符串掩码可具有下面带有给定含义的字符:
"c"
: 每次Lua调用函数时hook被调用;"r"
: 每次Lua从函数返回时hook被调用;"l"
: 每次Lua进入代码的新行时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
的函数)。