4324

22 分钟

#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 ()

说明

生成一个临时文件名。需要显式打开才能使用,并且需要手动删除。

参数

返回值

  • 返回临时文件名

#推荐阅读

Operating System Facilities - Lua 5.4 Reference Manual

创建于 2025/10/20

更新于 2025/10/20