#Lua 的 OS 模块
| 函数 | 说明 |
|---|---|
| os.clock | 获取程序使用的 CPU 时间(单位为秒) |
| os.date | 获取日期和时间 |
| os.difftime | 计算时间差 |
| os.execute | 执行命令 |
| os.exit | 终止主机程序 |
| os.getenv | 获取环境变量 |
| os.remove | 删除文件 |
| os.rename | 修改文件名 |
| os.setlocale | 修改区域设置 |
| os.time | 获取时间 |
| os.titmpnameme | 生成一个临时文件名 |
#os.clock
os.clock ()
说明
获取程序使用的 CPU 时间的近似值(以秒为单位),通过 C 语言标准库函数 clock 实现。
参数
无
返回值
- 返回程序使用的 CPU 时间(秒)
#os.date
os.date ([format [, time]])
说明
格式化日期和时间。
参数
format- 格式;默认为"%c",返回当前语言环境提供人类可读的日期和时间表示- 以
"!"开头时采用协调世界时间 (UTC) ,否则采用本地时间 - 在可选的
"!"之后,以"*t"开头时返回表,否则返回字符串 - 此后格式和 C 语言标准库函数 strftime 保持一致
- 以
time- 时间(以秒为单位的时间戳);默认不带时间
返回值
- 日期和时间的表或字符串
表的字段为:
year(年),month(月,1–12),day(日,1–31),hour(时,0–23),min(分,0–59),sec(秒,0–61,含闰秒),wday(星期几,1–7,星期日为 1),yday(一年中的第几天,1–366) 和isdst(夏令时标志,布尔值)。
#os.difftime
os.difftime (t2, t1)
说明
计算时间差
参数
t2- 结束时间t1- 开始时间
返回值
- 时间相差的秒数
#os.execute
os.execute ([command])
说明
执行命令 command,等效于 C 语言标准库函数 system
参数
command- 要执行的命令
返回值
- 第一个返回值是一个布尔值,表示命令是(
true)否(false)执行成功 - 第二个返回值是一个字符串:
"exit"- 命令正常退出,下一个返回值是命令的返回值"signal"- 命令被信号终止,下一个返回值是终止该命令的信号
- 第三个返回值是一个整数,表示命令的返回值或终止该命令的信号
#os.exit
os.exit ([code [, close]])
说明
调用 C 语言标准库函数 exit 退出程序。
参数
code- 结束状态;默认为truetrue时返回值为EXIT_SUCCESSfalse时返回值为EXIT_FAILURE;
close- 是否关闭 Lua 状态
返回值
无
#os.getenv
os.getenv (varname)
说明
获取环境变量 varname 的值。
参数
varname- 环境变量的名称
返回值
- 返回环境变量
varname的值 - 如果环境变量
varname不存在则返回nil
#os.remove
os.remove (filename)
说明
删除文件 filename。
参数
filename- 要删除的文件
返回值
- 成功时返回
true - 失败时返回
nil、错误信息以及错误码
#os.rename
os.rename (oldname, newname)
说明
将文件 oldname 重命名为 newname。
参数
oldname- 要重命名的文件newname- 新的文件名
返回值
- 成功时返回
true - 失败时返回
nil、错误信息以及错误码
#os.setlocale
os.setlocale (locale [, category])
说明
设置程序的区域配置,参考 C 语言标准库函数 setlocale。
参数
locale- 要设为的区域nil- 不改变配置,仅返回给定类别的当前的区域""- 本机区域"C"- 标准 C 区域设置
category- 要设置的区域配置类别;默认为"all""all"- 全部"collate"- 排序规则"ctype"- 字符类型"monetary"- 货币格式"numeric"- 数值格式"time"- 时间格式
返回值
- 返回设置后的区域
#os.time
os.time ([table])
说明
获取时间。
- 不带参数时返回当前时间
- 带参数时返回
table中指定的本地日期和时间
表的有效字段为:
year(年)month(月,1–12)day(日,1–31)hour(时,0–23)min(分,0–59)sec(秒,0–61,含闰秒)wday(星期几,1–7,星期日为 1)yday(一年中的第几天,1–366)isdst(夏令时标志,布尔值)。
表中的字段可以超出有效范围,例如 sec 为 -10 时表示比其他字段指定的时间早 10 秒。
参数
table- 本地日期和时间
返回值
- 不带参数时返回当前时间
- 带参数时返回
table中指定的本地日期和时间
#os.titmpnameme
os.tmpname ()
说明
生成一个临时文件名。需要显式打开才能使用,并且需要手动删除。
参数
无
返回值
- 返回临时文件名