- Lua 教程
- Lua - 首頁
- Lua 基礎
- Lua - 概述
- Lua - 環境
- Lua - 基本語法
- Lua - 註釋
- Lua - 列印 Hello World
- Lua - 變數
- Lua - 資料型別
- Lua - 運算子
- Lua - 迴圈
- Lua - 決策制定
- Lua - 函式
- Lua - 日期和時間
- Lua 陣列
- Lua - 陣列
- Lua - 多維陣列
- Lua - 陣列長度
- Lua - 遍歷陣列
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 在列表中搜索
- Lua 模組
- Lua - 模組
- Lua - 名稱空間
- Lua 元表
- Lua - 元表
- Lua 協程
- Lua - 協程
- Lua 檔案處理
- Lua - 檔案 I/O
- Lua 庫
- Lua - 標準庫
- Lua - 數學庫
- Lua - 作業系統功能
- Lua 有用資源
- Lua - 快速指南
- Lua - 有用資源
- Lua - 討論
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 函式 system。它傳遞要由作業系統 shell 執行的命令。它的第一個結果是如果命令成功終止則為 true,否則為 nil。 |
| 5 | os.exit ([code [, close]]) 呼叫 ANSI C 函式 exit 以終止主機程式。如果 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”、“monetary”、“numeric”或“time”;預設類別為“all”。該函式返回新區域設定的名稱,如果無法滿足請求則返回 nil。 |
| 10 | os.time ([table]) 在不帶引數的情況下呼叫時返回當前時間,或返回由給定表格指定的日期和時間表示的時間。此表格必須具有欄位 year、month 和 day,並且可能具有欄位 hour(預設為 12)、min(預設為 0)、sec(預設為 0)和 isdst(預設為 nil)。有關這些欄位的說明,請參閱 os.date 函式。 |
| 11 | os.tmpname () 返回一個字串,其中包含可用於臨時檔案的名稱。必須在使用之前顯式開啟檔案,並在不再需要時顯式刪除。 |
示例 - 常用作業系統函式
下面顯示了一個使用常用數學函式的簡單示例。
main.lua
-- 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 10/15/2024 The date and time is 10/15/24 11:09:45 The OS time is 1728970785 Lua started before 0
示例 - Env 函式
main.lua
-- Environment Variable
io.write("The PATH is ", os.getenv("PATH"),"\n")
-- temp file name
io.write("The Temp File Name is ", os.tmpname(),"\n")
輸出
執行上述程式時,我們將得到類似於以下的輸出。
The PATH is /usr/local/sbin:... The Temp File Name is /tmp/lua_X2WvvK
以上示例只是一些常用示例,我們可以根據需要使用 OS 庫,因此請嘗試使用所有函式以使其更加熟悉。例如,remove 函式可以幫助刪除檔案,execute 函式可以幫助我們執行上面解釋的作業系統命令。