lua 操作系统库

Lua为了保证高度的可移植性,因此,它的标准库仅仅提供了非常少的功能,特别是和OS相关的库。但是Lua还提供了一些扩展库,比如Posix库等。对于文件操作而言,该库仅提供了os.rename函数和os.remove函数。
    
    1. 日期和时间:
    在Lua中,函数timedate提供了所有的日期和时间功能。
    如果不带任何参数调用time函数,它将以数字形式返回当前的日期和时间。如果以一个table作为参数,它将返回一个数字,表示该table中所描述的日期和时间。该table的有效字段如下:

字段名 描述
year一个完整的年份
month01-12
day01-31
hour00-23
min00-59
sec00-59
isdst布尔值,true表示夏令时

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

关键字 描述
%a一星期中天数的缩写,如Wed
%A一星期中天数的全称,如Friday
%b月份的缩写,如Sep
%B月份的全称,如September
%c日期和时间
%d一个月中的第几天(01-31)
%H24小时制中的小时数(00-23)
%I12小时制中的小时数(01-12)
%j一年中的第几天(001-366)
%M分钟(00-59)
%m月份(01-12)
%p"上午(am)"或"下午(pm)"
%S秒数(00-59)
%w一星期中的第几天(0--6等价于星期日--星期六)
%x日期,如09/16/2010
%X时间,如23:48:20
%y两位数的年份(00-99)
%Y完整的年份(2012)
%%字符'%'

    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")






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值