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作為計算機資源的管理者 ...