欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Lua中os库详细介绍

程序员文章站 2022-07-05 08:50:15
这个库通过表os实现 os.clock () 功能:返回一个程序使用cpu时间的一个近似值 例如: 复制代码 代码如下: local x = os.clock()...

这个库通过表os实现

os.clock ()

功能:返回一个程序使用cpu时间的一个近似值

例如:

复制代码 代码如下:

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

输出:
复制代码 代码如下:

0
elapsed time : 2.55

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

功能:返回一个按format格式化日期、时间的字串或表
若设置time参数,则按time指定的时间格式化,否则按当前时间格式化
参数:
  format:
         "!":按格林尼治时间进行格式化。
      "*t":将返一个带year(4位),month(1-12), day (1--31), hour (0-23), min (0-59), sec (0-61), wday (星期几, 星期天为1), yday (年内天数), and isdst (是否为日光节约时间true/false)的带键名的表; 若没有"*t"则返回一个按c的strftime函数格式化的字符串
  若不带参数,则按当前系统的设置返回格式化的字符串 os.date() <=> os.date("%c")
 
例如:

复制代码 代码如下:

t = os.date("*t", os.time());
for i, v in pairs(t) do
      print(i, v);
end

输出:
复制代码 代码如下:

hour  14
min   58
wday  2
day   10
month  8
year  2009
sec   18
yday  222
isdst  false

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

例如:

复制代码 代码如下:

print(os.date("today is %a, in %b"))      -->today is tuesday, in may
print(os.date("%x", 906000490))           -->09/16/1998

所有格式化字符串如下:
复制代码 代码如下:
 
%a      一星期中天数的简写                      (wed)
%a      一星期中天数的全称                      (wednesday)
%b      月份的简写                                  (sep)
%b      月份的全称                                  (september)
%c      日期和时间                                   (09/16/98 23:48:10)
%d      一个月中的第几天                          (16)[0 ~ 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)
%%      字符串'%'

os.difftime (t2, t1)

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

例如:

复制代码 代码如下:

t1 = os.time();
for i = 0, 10000000 do
 os.time();
end
t2 = os.time();
print(os.difftime(t2, t1));

输出:

2

os.execute ([command])

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

例如:

复制代码 代码如下:

os.execute("pause")

输出:

按任意键继续. . .

os.exit (

复制代码 代码如下:
)

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

例如:
[code]
os.exit(1)

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"))

输出:
复制代码 代码如下:

rdev
c:\windows
nil
c:\program files
c:\documents and settings\baiyun\application data
c:\documents and settings\all users
c:\program files\common files
baiyun
baiyun
c:\documents and settings\baiyun
c:\windows\system32\cmd.exe
2
windows_nt
.com;.exe;.bat;.cmd;.vbs;.vbe;.js;.jse;.wsf;.wsh;.py;.pyw;.wlua
x86
x86 family 15 model 6 stepping 5, genuineintel
15
0605
rdev
c:\windows
c:\docume~1\baiyun\locals~1\temp

os.remove (filename)

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

os.rename (oldname, newname)

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

os.setlocale (locale [, category])

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

os.time ([table])

功能:按table的内容返回一个时间值(数字),若不带参数则返回当前时间table的字段:

复制代码 代码如下:

  year, month, day, hour, min, sec, isdst

例如:
复制代码 代码如下:

print(os.time());
-->1249887340
print(os.time({year=1970, month=1, day=1, hour=0}));
-->10500

os.tmpname()

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