Lua 操作系统库

来源:互联网 发布:linux文本编辑命令 编辑:程序博客网 时间:2024/05/22 00:59

note 目录

  • Lua操作系统库函数
  • Lua中所有的操作系统库函数

1:Lua操作系统库函数

操作系统库包含了文件管理,系统时钟等等与操作系统相关信息。这些函数定义在表(table)os中


2:Lua中所有的操作系统库函数

2.1 os.clock ()

功能:函数os.clock返回执行该程序CPU花去的时钟秒数

local x = os.clock();print(os.clock())local s = 0;for i = 1, 100000000 do      s = s + i;endprint(string.format("elapsed time : %.2f\n", os.clock() - x));output:0elapsed time : 2.55

2.2 os.time()

(1)如果不带任何参数调用time函数,它会以数字形式返回当前的日期和时间(这个数字表示从某一刻至今的秒数)。

print("os.time: " .. os.time())output:os.time: 1476668264

(2)如果用一个table作为参数调用它,表示该table中所描述的日期和时间。
这种table具有以下字段:

字段 意义 year 一个完整的年份 month 01-12 day 01-31 hour 00-23 min 00-59 sec 00-59 isdst 一个布尔值,true表示夏令时间

前3个字段是必须有的其他字段默认为中午(12:00:00)

print(os.time{year=1970,month=1,day=1,hour=0})        output:10800print(os.time{year=1970,month=1,day=1,hour=0,sec=1})  output:10801print(os.time{year=1970,month=1,day=1})               output:54000 

2.3 os.date()

功能:
date是time的一个反函数,它可以将一个表示日期和时间的数字转换成某些高级的表现形式,返回一个按format格式化日期、时间的字串或表。

第一个参数是格式字符串,指定了期望的表现形式
第二个参数是日期和时间的数字,默认为当前日期和时间

os.date("formatStr" , "nowTime")
2.3.1 参数1:formatStr

(1) formatStr = *t

将返一个带year(4位),month(01-12), day (01–31), hour (00-23), min (00-59), sec (00-61), wday (星期几, 星期天为1), yday (年内天数), and isdst (是否为日光节约时间true/false)的带键名的表

local t = os.date("*t",os.time())for i, v in pairs(t) do      print(i, v);end输出:sec    18min    22day    17isdst  falsewday   2yday   291year   2016month  10hour   10

(2)format = %x%x 其他格式字符串

对于其它的格式字符串,os.date会将日期格式化为一个字符串

print(os.date("today is %A, in %B"))      output: today is Tuesday, in Mayprint(os.date("%x", 906000490))           output: 09/16/1998

格式化字符串表

字符串 意义 返回结果 %a 一星期中天数的简写 (Wed) %A 一星期中天数的全称 (Wednesday) %b 月份的简称 (sep) %B 月份的全称 (september) %c 日期和时间 (09/16/98 23:48:10) %d 一个月中的第几天 (17)[00-31] %H 24小时制中的小时数 (23)[00 ~ 23] %I 12小时制中的小时数 (11)[01 ~ 12] %j 一年中的第几天 (259)[01 ~ 366] %M 分钟数 (48)[00 ~ 59] %m 月份数 (09)[01 ~ 12] %P “上午(am)” 或 “下午(pm)” (pm) %S 秒数 (10)[00 ~ 59] %w 一星期中的第几天 (3)[0 ~ 6 = 星期天 ~ 星期六] %W 一年中的第几个星期 0 ~ 52 %x 日期 (09/16/98) %X 时间 (23:48:10) %y 两位数的年份 (90)[00 ~ 99] %Y 完整的年份 (2009) %% 字符串’% “”
2.3.2 参数2:nowTime

输入想要转换的时间,不填这个参数,默认为当前时间。

2.4 os.difftime (t2, t1)

功能:返回t1到t2相差的秒数

t1 = os.time();for i = 0, 10000000 do os.time();endt2 = os.time();print(os.difftime(t2, t1));output:2

2.5 os.execute ([command])

功能:相当于C的system函数,返回系统状态码

os.execute("pause")output:按任意键继续. . .

2.6 os.exit ([code])

功能:相当于C的exit函数,终止主程序,code为返回值

os.exit(1)

2.7 os.getenv (varname)

功能:返回当前进程的环境变量varname的值,若变量没有定义时返回nil

print(os.getenv("USERDOMAIN"))print(os.getenv("SystemRoot"))print(os.getenv("Os2LibPath"))print(os.getenv("ProgramFiles" ))print(os.getenv("APPDATA" ))print(os.getenv("ALLUSERSPROFILE" ))print(os.getenv("CommonProgramFiles" ))print(os.getenv("COMPUTERNAME" ))print(os.getenv("USERNAME"))print(os.getenv("USERPROFILE" ))print(os.getenv("ComSpec"))print(os.getenv("LOGONSERVER" ))print(os.getenv("NUMBER_OF_PROCESSORS" ))print(os.getenv("OS"))print(os.getenv("PATHEXT" ))print(os.getenv("PROCESSOR_ARCHITECTURE" ))print(os.getenv("PROCESSOR_IDENTIFIER" ))print(os.getenv("PROCESSOR_LEVEL" ))print(os.getenv("PROCESSOR_REVISION" ))print(os.getenv("USERDOMAIN"))print(os.getenv("SystemRoot" ))print(os.getenv("TEMP"))output:RDEVC:\WINDOWSnilC:\Program FilesC:\Documents and Settings\baiyun\Application DataC:\Documents and Settings\All UsersC:\Program Files\Common FilesBAIYUNbaiyunC:\Documents and Settings\baiyunC:\WINDOWS\system32\cmd.exeWindows_NT.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.py;.pyw;.wluax86x86 Family 15 Model 6 Stepping 5, GenuineIntel150605RDEVC:\WINDOWSC:\DOCUME~1\baiyun\LOCALS~1\Temp

2.8 os.remove (filename)

功能:删除文件或一个空目录,若函数调用失败则返加nil加错误信息

2.9 os.rename (oldname, newname)

功能:更改一个文件或目录名,若函数调用失败则返加nil加错误信息

2.10 os.setlocale (locale [, category])

功能:设置程序的当前设置,函数返回最新的值,失败则返回nil
参数:
  locale:一个指定当前设置的字串
      “”:一个空字串,当前设置被视为本地设置
     “c”:当前设置被视为标准c设置
     nil:返回category指示设置名的当前值
  category:一个描述要更改的设置名
“all”[默认], “collate”, “ctype”, “monetary”, “numeric”, “time”

2.11 os.tmpname()

功能:返回一个临时文件名

原创粉丝点击