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

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

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

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

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函数的标识完全相同,见下表:

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

复制代码 代码如下:
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,教程,系统库,os库

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com

评论“Lua教程(十六):系统库(os库)”

暂无“Lua教程(十六):系统库(os库)”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。