lua os 作業系統 庫

2021-08-19 20:33:58 字數 3689 閱讀 9933

lua os庫提供了簡單的跟作業系統有關的功能

os.clock()

返回當前當前cpu使用的秒數
--用來計算中間的遍歷花費了多少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))

os.date([format [, time]])

用來格式化時間戳為可讀時間,time為可選時間戳,省略時取當下
os.time ([table])

預設獲取當前時間戳,也可以指定table引數
--2018-05-09 09:20:04

local now = os.date("%y-%m-%d %h:%m:%s")

-- %a abbreviated weekday name (e.g., wed)

-- %a full weekday name (e.g., wednesday)

-- %b abbreviated month name (e.g., sep)

-- %b full month name (e.g., september)

-- %c date and time (e.g., 09/16/98 23:48:10)

-- %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–60]

-- %w 星期幾[0–6 = 星期天–星期六]

-- %x date (e.g., 09/16/98)

-- %x time (e.g., 23:48:10)

-- %y two-digit year (98) [00–99]

-- %y 年(1998)

-- %% the character 『%』

--獲取當前時間戳秒-1525829060

local secs = os.time()

local year = string.sub(now,1,4)

local month = string.sub(now,6,7)

local day = string.sub(now,9,10)

local hour = string.sub(now,12,13)

local minute = string.sub(now,15,16)

local second = string.sub(now,18,19)

--獲取7天前的時間

ta =

--2018-05-02 09:50:57

local t = os.date("%y-%m-%d %h:%m:%s", os.time(ta))

--獲取本年2月份的天數

--3月份開頭減去1天就是2月份的最後一天

ta =

--28

local days = os.date("%d", os.time(ta))

--我相信想計算其他複雜的時間格式,都可以通過上面的例子來舉一反三了

os.exit(0)

結束程式並返回狀態碼,0代表成功
os.getenv(varname)

獲取壞境變數
--/root

os.getenv("home")

os.execute(cmd)

執行作業系統命令並返回狀態碼,0代表成功,此函式等同於c語言中的system函式
--0

local stat = os.execute('ls -al')

os.setlocale (locale [, category])

主要是設定地區資訊(地域資訊)。 地區資訊是針對乙個地理區域的語言、貨幣、時間以及其他資訊,主要是為了滿足不同地區的人們的不同閱讀習慣。

返回值:

locale名稱,返回nil代表失敗(一般是由於當前系統不支援指定的locale名)  

引數:

第乙個引數為locale名,第二個為類目(用來指定應用到**預設為全部)

locale:

''空字元locale將會設定成由當前執行壞境決定的locale

nil            只是返回當前locale

c             設定成標準c locale

category"collate"            控制字串的字母排序

"ctype"               控制單個字元型別以及大小寫約定

"monetary"        此選項對lua不起作用

"numeric"          控制数字的格式化方式

"time"                控制date,time的格式化如os.date

"all"                    包含以上全部

#shell檢視當前系統支援哪些locale

locale -a

#部分輸出如下

:<lua例子

--獲取當前地區資訊

--clocal res = os.setlocale(nil)

--wed may 9 10:42:04 2018

res = os.date('%c')

--zh_cn.utf8

os.setlocale("zh_cn.utf8","time")

--2023年05月09日 星期三 10時54分32秒

res = os.date('%c')

--不同壞境結果可能會略微不同

os.remove(filename)

刪除檔案或空目錄,失敗返回nil以及描述資訊
os.rename(oldname,newname)

重新命名檔案或目錄,失敗返回nil以及描述資訊
os.tmpname()

自動產生臨時檔案並返回檔名如/tmp/lua_zh52pu,如果要使用,必須手動開啟檔案,最後不使用時必須手動刪除。

io.tmpfile產生的臨時檔案程式結束後會自動刪除

作業系統 庫

庫的定義 庫就是目標檔案的集合,我們把不需要公升級更新維護的 打包合併在一起方便使用,也可以對源 進行保密。靜態庫 靜態庫在使用時在使用時是把被呼叫的 複製到呼叫模組中,然後在執行程式時,靜態庫就不需要了。靜態庫的特性 靜態的擴充套件名為.a 靜態庫的執行速度快,但占用記憶體大,當庫中的內容發生變化...

作業系統 作業系統介面

介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...

作業系統(作業系統引論)

方便性 方便使用者進行操作計算機 有效性提高系統資源的利用率 提高系統的吞吐量,加速程式的執行 可擴充性 方便地增添新的模組和功能,以及對原有的功能模組進行修改 開放性能夠遵循世界標準規範 os作為使用者和計算機硬體系統之間的介面 使用者能夠通過作業系統來使用計算機系統 os作為計算機資源的管理者 ...