Os 库教程

lua-users home
wiki

有关操作系统库的详细信息,请参阅参考手册的第 5.8 节 [1]

os.clock()

返回 Lua 启动以来的 CPU 时间(以秒为单位)。

> = os.clock()
11056.989

os.date([format [, time]])

返回格式化日期字符串,或时间信息表。格式字符串与 C 的 strftime() 函数格式相同。

待办:插入有关 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

os.difftime(t2, t1)

计算时间 t1 到时间 t2 之间的秒数。

> t1 = os.time()
> -- wait a little while then type....
> = os.difftime(os.time(), t1)
31
> = os.difftime(os.time(), t1)
38

os.execute([command])

执行操作系统 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

os.exit([code])

调用 C 函数 exit,可选择提供一个代码,以终止宿主程序。code 的默认值为成功代码。

> os.exit(0)   -- kill the Lua shell we are in and pass 0 back to parent shell

os.getenv(varname)

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

> = os.getenv("BANANA")
nil
> = os.getenv("USERNAME")
Nick

os.remove(filename)

删除指定文件名的文件。如果此函数失败,则返回 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

os.rename(oldname, newname)

将名为 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

os.setlocale(locale [, category])

设置程序的当前区域设置。locale 是指定区域设置的字符串;category 是一个可选字符串,描述要更改的类别:“all”、“collate”、“ctype”、“monetary”、“numeric”或“time”;默认类别为“all”。如果请求无法满足,该函数将返回新区域设置的名称,否则返回 nil。

os.time([table])

给定一个格式化的日期表(如 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 ()

生成一个可用于临时文件的名称。这仅生成名称,不打开文件。

> = os.tmpname()  -- on windows
\s2js.
> = os.tmpname()  -- on debian
/tmp/lua_5xPi18

RecentChanges · preferences
编辑 · 历史
最后编辑于 2022 年 6 月 26 日,格林威治时间凌晨 12:57 (差异)