Lua教程(十六):系统库(os库)

 更新时间:2015年04月30日 09:45:12   投稿:junjie  
这篇文章主要介绍了Lua教程(十六):系统库(os库)本文着重讲解了OS库中的日期和时间操作和其他系统调用两部份内容,需要的朋友可以参考下

Lua为了保证高度的可移植性,因此,它的标准库仅仅提供了非常少的功能,特别是和OS相关的库。但是Lua还提供了一些扩展库,比如Posix库等。对于文件操作而言,该库仅提供了os.rename函数和os.remove函数。
1. 日期和时间:

在Lua中,函数time和date提供了所有的日期和时间功能。

如果不带任何参数调用time函数,它将以数字形式返回当前的日期和时间。如果以一个table作为参数,它将返回一个数字,表示该table中所描述的日期和时间。该table的有效字段如下:

print(os.time{year = 1970, month = 1, day = 1, hour = 8, min = 0}) --北京是东八区,所以hour等于时表示UTC的0。

print(os.time())  --输出当前时间距离1970-1-1 00:00:00所经过的秒数。输出值为 1333594721

函数date是time的反函数,即可以将time返回的数字值转换为更高级的可读格式,其第一个参数是格式化字符串,表示期望的日期返回格式,第二个参数是日期和时间的数字,缺省为当前日期和时间。如:

复制代码 代码如下:

dd = os.date("*t",os.time())  --如果格式化字符串为"*t",函数将返回table形式的日期对象。如果为"!*t",则表示为UTC时间格式。
print("year = " .. dd.year)
print("month = " .. dd.month)
print("day = " .. dd.day)
print("weekday = " .. dd.wday)  --一个星期中的第几天,周日是第一天
print("yearday = " .. dd.yday)  --一年中的第几天,1月1日是第一天
print("hour = " .. dd.hour)
print("min = " .. dd.min)
print("sec = " .. dd.sec)
   
--[[
year = 2012
month = 4
day = 5
weekday = 5
yearday = 96
hour = 11
min = 13
sec = 44
--]]

    date函数的格式化标识和C运行时库中的strftime函数的标识完全相同,见下表:

复制代码 代码如下:

print(os.date("%Y-%m-%d"))  --输出2012-04-05

    函数os.clock()返回CPU时间的描述,通常用于计算一段代码的执行效率。如:
复制代码 代码如下:

local x = os.clock()
local s = 0
for i = 1, 10000000 do
    s = s + i
end
print(string.format("elapsed time: %.2f\n", os.clock() - x))

--输出结果为:
--elapsed time: 0.21

2. 其他系统调用:

    函数os.exit()可中止当前程序的执行。函数os.getenv()可获取一个环境变量的值。如:
 

复制代码 代码如下:

    print(os.getenv("PATH"))  --如果环境变量不存在,返回nil。
    os.execute函数用于执行和操作系统相关的命令,如:
    os.execute("mkdir " .. "hello")

 

相关文章

  • Lua中的异常处理pcall、xpcall、debug使用实例

    Lua中的异常处理pcall、xpcall、debug使用实例

    这篇文章主要介绍了Lua中的异常处理pcall、xpcall、debug使用实例,这3个函数是Lua中的异常处理必须用到的,需要的朋友可以参考下
    2014-09-09
  • Lua实现类继承

    Lua实现类继承

    这里给大家演示的是一个使用lua实现类继承的示例,实现类继承其实有很多种写法,这里是本人常用的方法,推荐给大家。
    2015-03-03
  • Lua内置的调试器用法详解

    Lua内置的调试器用法详解

    这篇文章主要介绍了Lua内置的调试器用法,在编程debug操作中非常有用,要的朋友可以参考下
    2015-05-05
  • Lua中的函数精讲笔记

    Lua中的函数精讲笔记

    这篇文章主要介绍了Lua中的函数精讲笔记,本文讲解了函数的用途、可变参数函数、闭包、非全局函数等内容,需要的朋友可以参考下
    2015-04-04
  • C++遍历Lua table的方法实例

    C++遍历Lua table的方法实例

    这篇文章主要介绍了C++遍历Lua table的方法实例,本文给出了Lua table数据格式、C++实现的遍历代码以及输出效果,需要的朋友可以参考下
    2015-04-04
  • Lua中的string库(字符串函数库)总结

    Lua中的string库(字符串函数库)总结

    这篇文章主要介绍了Lua中的string库(字符串函数库)总结,本文讲解了string库的操作方法,着重讲解了string.format方法,需要的朋友可以参考下
    2014-11-11
  • Lua中的持久化和序列化详解

    Lua中的持久化和序列化详解

    这篇文章主要介绍了Lua中的持久化和序列化详解,本文详细讲解了Lua中的持久化和序列化,并给出代码实例,需要的朋友可以参考下
    2014-09-09
  • Lua面向对象之类和继承浅析

    Lua面向对象之类和继承浅析

    这篇文章主要介绍了Lua面向对象之类和继承浅析,本文讲解了一些Lua面向对象的一些知识,需要的朋友可以参考下
    2014-09-09
  • Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出

    Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出

    这篇文章主要介绍了Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出,本文直接给出实例代码,代码中包含详细注释,需要的朋友可以参考下
    2015-07-07
  • Lua中对table排序实例

    Lua中对table排序实例

    这篇文章主要介绍了Lua中对table排序实例,本文讲解了Lua中对table的一般排序方法、针对值的排序、同时对键值进行排序等方法,需要的朋友可以参考下
    2014-09-09

最新评论