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')) -- /root
print(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    13
min     51
wday    3
day     28
month   10
year    2014
sec     58
yday    301
isdst   false

 

而對於其它格式字符串,os.date 會將日期格式化為一個字符串,這個字符串是傳入格式字符串的一個復制,但其中的某些特殊標記被替換成了時間和日期信息。所有的標記都以"%"開頭,並伴隨一個字符,例如:

print(os.date())                            -- Tue Oct 28 13:57:39 2014
print(os.date('today is %A, in %B'))        -- today is Tuesday, in October
print(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 = 0
for i=1,10^7 do s = s + i end

print(string.format("elapsed time: %.2f\n", os.clock() - x))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM