Lua操作系統工具
在任何應用程序中,通常都需要訪問操作系統級功能,並且可以使用操作系統庫。 可用功能列表如下表所示。
編號
庫或方法
描述
1
os.clock()
返回程序使用的CPU時間(以秒爲單位)的近似值。
2
os.date([format[, time]])
返回包含日期和時間的字符串或表,根據給定的字符串格式進行格式化。
3
os.difftime(t2,t1)
返回從時間t1
到時間t2
的秒數。在POSIX,Windows和其他一些系統中,恰好是t2-t1
的值。
4
os.execute([command])
此功能相當於ANSI C功能系統。 它傳遞要由操作系統shell執行的命令。 如果命令成功終止,則第一個結果爲true
,否則爲nil
。
5
os.exit([code[, close])
調用ANSI C函數出口以終止宿主程序。 如果code
爲true
,則返回狀態爲EXIT_SUCCESS
; 如果code
爲false
,則返回狀態爲EXIT_FAILURE
; 如果code
是數字,則返回的狀態是此數字。
6
os.getenv(varname)
返回進程環境變量varname
的值,如果未定義變量,則返回nil
。
7
os.remove(filename)
使用給定名稱刪除文件(或POSIX系統上的空目錄)。 如果此函數失敗,則返回nil
,以及描述錯誤和錯誤代碼的字符串。
8
os.rename(oldname, newname)
將名爲oldname
的文件或目錄重命名爲newname
。 如果此函數失敗,則返回nil
,以及描述錯誤和錯誤代碼的字符串。
9
os.setlocale(locale [,category])
設置程序的當前區域設置。 locale
是一個依賴於系統的字符串,用於指定語言環境; category
是一個可選字符串,用於描述要更改的類別:all
,collate
,ctype
,currency
,numeric
或time
; 默認類別(category
)是"all"
。該函數返回新語言環境的名稱,如果無法滿足請求,則返回nil
。
10
os.time([table])
返回不帶參數調用的當前時間,或表示給定表指定的日期和時間的時間。 此表必須包含字段年,月和日,並且可能包含字段小時(默認值爲12
),分鐘(默認值爲0
),秒(默認值爲0
)和isdst
(默認值爲nil
)。 有關這些字段的說明,請參見os.date
函數。
11
os.tmpname()
返回一個文件名,該文件名可用於臨時文件。 文件必須在使用前顯式打開,並在不再需要時顯式刪除。
常見的OS功能
使用常見數學函數的簡單示例如下所示 -
-- Date with format
io.write("The date is ", os.date("%m/%d/%Y"),"\n")
-- Date and time
io.write("The date and time is ", os.date(),"\n")
-- Time
io.write("The OS time is ", os.time(),"\n")
-- Wait for some time
for i=1,1000000 do
end
-- Time since Lua started
io.write("Lua started before ", os.clock(),"\n")
當運行上面的程序時,將得到類似的輸出如下 -
The date is 01/25/2018
The date and time is 01/25/18 07:38:40
The OS time is 1490615720
Lua started before 0.013
上面的例子只是一些常見的例子,可根據自己的需要使用OS庫,建議嘗試使用所有的功能以便更加熟悉。像remove
這樣的函數有助於刪除文件,執行有助於於執行OS命令。