Os 库教程 |
|
返回 Lua 启动后以秒为单位的 CPU 时间。
> = os.clock() 11056.989
返回格式化的日期字符串或时间信息表。格式字符串与 C strftime()
函数的格式相同。
在 http://www.cplusplus.com/reference/clibrary/ctime/strftime/ 中列出所有参数
简单示例
> = os.date("%d.%m.%Y") 06.10.2012
如果格式字符串为 "*t"
,则返回一个包含时间信息的表,例如:
> table.foreach(os.date('*t'), print) hour 14 min 36 wday 1 year 2003 yday 124 month 5 sec 33 day 4 isdst true
上面使用 pairs() 方法的示例
> for k, v in pairs(os.date("*t")) do print(k, v) end year 2012 day 1 min 54 wday 4 month 8 isdst true yday 214 sec 39 hour 14
如果格式以 "!" 开头,则时间将转换为协调世界时,例如:
> table.foreach(os.date('!*t'), print) hour 21 min 36 wday 1 year 2003 yday 124 month 5 sec 42 day 4 isdst false
上面使用 pairs() 方法的示例
> for k, v in pairs(os.date("!*t")) do print(k, v) end year 2012 day 1 min 58 wday 4 month 8 isdst false yday 214 sec 39 hour 12
os.date() 返回格式为 MM/DD/YY HH:MM:SS
的字符串。
> print(os.date()) 08/16/05 10:22:32
如今 os.date() 返回的字符串格式不同
> = os.date() Wed Aug 1 15:00:47 2012
计算时间 t1 到时间 t2 之间的秒数。
> t1 = os.time() > -- wait a little while then type.... > = os.difftime(os.time(), t1) 31 > = os.difftime(os.time(), t1) 38
执行操作系统 shell 命令。这类似于 C system()
函数。返回系统相关的状态代码。
> = os.execute("echo hello") hello 0 > = os.execute("mmmmm") -- generate an error 'mmmmm' is not recognized as an internal or external command, operable program or batch file. 1
如果没有参数,此命令将在存在 OS shell 时返回非零值,否则返回零值。
> = os.execute() -- no argument 1
调用 C 函数 exit,并带有一个可选的代码,以终止主机程序。代码的默认值为成功代码。
> os.exit(0) -- kill the Lua shell we are in and pass 0 back to parent shell
返回进程环境变量 varname 的值,如果变量未定义则返回 nil。
> = os.getenv("BANANA") nil > = os.getenv("USERNAME") Nick
删除具有给定名称的文件。如果此函数失败,它将返回 nil,以及描述错误的字符串。
> os.execute("echo hello > banana.txt") > = os.remove("banana.txt") true > = os.remove("banana.txt") nil banana.txt: No such file or directory 2
将名为 oldname 的文件重命名为 newname。如果此函数失败,它将返回 nil,以及描述错误的字符串。
> os.execute("echo hello > banana.txt") > = os.rename("banana.txt", "apple.txt") true > = os.rename("banana.txt", "apple.txt") nil banana.txt: No such file or directory 2
设置程序的当前区域设置。locale 是一个指定区域设置的字符串;category 是一个可选的字符串,描述要更改的类别:"all"、"collate"、"ctype"、"monetary"、"numeric" 或 "time";默认类别为 "all"。该函数返回新区域设置的名称,如果请求无法满足则返回 nil。
给定一个格式化的日期表,如 os.date()
所用,返回系统秒中的时间。
> t = os.date('*t') -- time now > table.foreach(os.date('*t'), print) hour 15 min 1 wday 1 year 2003 yday 124 month 5 sec 2 day 4 isdst true > = os.time(t) -- time in system seconds 1052085659 > t.year = 2001 -- 2001, a Lua odyssey > = os.time(t) -- time then 989013659
生成一个可用于临时文件的名称。这只会生成一个名称,不会打开文件。
> = os.tmpname() -- on windows \s2js.
> = os.tmpname() -- on debian /tmp/lua_5xPi18