#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
- 结束状态;默认为true
true
时返回值为EXIT_SUCCESS
false
时返回值为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 ()
说明
生成一个临时文件名。需要显式打开才能使用,并且需要手动删除。
参数
无
返回值
- 返回临时文件名