首页 > 代码库 > Lua 之os库

Lua 之os库

标准os库

 

os.rename(oldname, newname)

文件重命名;

 

os.remove(filename)

删除一个文件

 

os.execute(cmd)

os.execute可运行一条系统命令,类似于C语言的system函数。

os.execute("mkdir /tmp/cq")

 

os.exit(code)

中止当前程序的执行,code参数默认值为true。

 

 

os.getenv(variable)

返回环境变量的值,如果不存在,返回nil。

print(os.getenv(HOME)) -- /rootprint(os.getenv(ROOT)) -- nil

 

 

os.time(tb)

返回一个指定时间点的UNIX时间戳,如不带参数调用的话,就返回当前时间点的UNIX时间戳。

print(os.time())print(os.time{year=2014, month=10, day=28, hour=13})

 

参数table的字段包括:

year

年份

month

01-12

day

01-31

hour

00-23

min

00-59

sec

00-59

isdst

布尔值,true表示夏令时

其中,year、month、day 三个字段是必须的,其它字段默认取 12:00:00。

 

 

os.date(format, sec)

os.data 是os.time 的反函数,它将一个UNIX时间戳转换成可读的字符串形式,如果省略第2个参数,默认返回当前时间点的日期。。

为了生成一个日期table,可以使用格式字符串"*t",例如:

tb = os.date("*t")for k,v in pairs(tb) do    print(k,v)end

输出:

hour    13min     51wday    3day     28month   10year    2014sec     58yday    301isdst   false

 

而对于其它格式字符串,os.date 会将日期格式化为一个字符串,这个字符串是传入格式字符串的一个复制,但其中的某些特殊标记被替换成了时间和日期信息。所有的标记都以"%"开头,并伴随一个字符,例如:

print(os.date())                            -- Tue Oct 28 13:57:39 2014print(os.date(today is %A, in %B))        -- today is Tuesday, in Octoberprint(os.date(%x,os.time()-24*3600*7 ))   -- 10/21/14

 

下面列出了所有的标记及其含义:

%a

星期简写,如Wed

%A

星期全称,如Wednesday

%b

月份简写,如Sep

%B

月份全称,如September

%c

日期和时间,如09/16/14 13:43:08

%d

一个月中的第几天,01-31

%H

24小时制中的小时数,00-23

%I

12小时制中的小时数,01-12

%j

一年中的第几天,001-366

%M

分钟数,00-59

%m

月份数,01-12

%p

上午(am)或下午(pm)

%S

秒数,00-59

%w

一星期中的第几天,0-6

%x

日期,如 09/16/14

%X

时间,如13:47:20

%y

两位数的年份,如14

%Y

完整的年份,如2014

%%

字符%

 

 

 

os.difftime(t2, t1)

返回从t1到t2的时间跨度值。

 

os.clock()

函数os.clock 返回当前CPU时间的秒数,一般可用于计算一段代码的执行时间

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

 

Lua 之os库