Lua - 操作系统接口

  • 简述

    在任何应用程序中,通常需要访问操作系统级别的功能,并且可以通过操作系统库获得。下表列出了可用的功能列表。
    序号 图书馆/方法和目的
    1
    os.clock ()
    返回程序使用的 CPU 时间的近似值(以秒为单位)。
    2
    os.date ([format [, time]])
    返回一个字符串或一个包含日期和时间的表,根据给定的字符串格式进行格式化。
    3
    os.difftime (t2, t1)
    返回从时间 t1 到时间 t2 的秒数。在 POSIX、Windows 和其他一些系统中,这个值正好是 t2-t1。
    4
    os.execute ([command])
    此函数等效于 ANSI C 函数系统。它传递要由操作系统外壳执行的命令。如果命令成功终止,则其第一个结果为 true,否则为 nil。
    5
    os.exit ([code [, close])
    调用 ANSI C 函数 exit 以终止宿主程序。如果 code 为 true,则返回状态为 EXIT_SUCCESS;如果 code 为 false,则返回状态为 EXIT_FAILURE;如果 code 是一个数字,则返回的状态就是这个数字。
    6
    os.getenv (varname)
    返回进程环境变量 varname 的值,如果变量未定义,则返回 nil。
    7
    os.remove (filename)
    删除具有给定名称的文件(或空目录,在 POSIX 系统上)。如果这个函数失败,它返回 nil,加上一个描述错误和错误代码的字符串。
    8
    os.rename (oldname, newname)
    将名为 oldname 的文件或目录重命名为 newname。如果这个函数失败,它返回 nil,加上一个描述错误和错误代码的字符串。
    9
    os.setlocale (locale [, category])
    设置程序的当前语言环境。locale 是一个系统相关的字符串,指定了一个语言环境;category 是一个可选字符串,描述要更改的类别:“all”、“collat​​e”、“ctype”、“monetary”、“numeric”或“time”;默认类别是“全部”。该函数返回新语言环境的名称,如果无法满足请求,则返回 nil。
    10
    os.time ([table])
    返回不带参数调用时的当前时间,或表示给定表指定的日期和时间的时间。此表必须有字段年、月和日,并且可能有字段小时(默认为 12)、分钟(默认为 0)、秒(默认为 0)和 isdst(默认为 nil)。有关这些字段的说明,请参阅 os.date 函数。
    11
    os.tmpname ()
    返回具有可用于临时文件的文件名的字符串。该文件必须在使用前显式打开,并在不再需要时显式删除。
  • 常用操作系统功能

    下面显示了一个使用常见数学函数的简单示例。
    
    -- Date with format
    io.write("The date is ", os.date("%m/%d/%Y"),"\n")
    -- Date and time
    io.write("The date and time is ", os.date(),"\n")
    -- Time
    io.write("The OS time is ", os.time(),"\n")
    -- Wait for some time
    for i=1,1000000 do
    end
    -- Time since Lua started
    io.write("Lua started before ", os.clock(),"\n")
    
    当我们运行上面的程序时,我们会得到与下面类似的输出。
    
    The date is 01/25/2014
    The date and time is 01/25/14 07:38:40
    The OS time is 1390615720
    Lua started before 0.013
    
    上面的例子只是一些常见的例子,我们可以根据自己的需要使用OS库,所以尝试使用所有功能会更熟悉。有像 remove 这样的函数可以帮助删除文件,execute 可以帮助我们执行上面解释的操作系统命令。