Lua中os库详细介绍

这个库通过表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"则返回一个按Cstrftime函数格式化的字符串
 
若不带参数,则按当前系统的设置返回格式化的字符串 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)

功能:返回t1t2相差的秒数

例如:

复制代码代码如下:


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

输出:

2

os.execute ([command])

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

例如:

复制代码代码如下:


os.execute("pause")

输出:

按任意键继续. . .

os.exit (

复制代码代码如下:

)

功能:相当于Cexit函数,终止主程序,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()

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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lua,可以使用os.execute函数执行操作系统命令。但是,os.execute函数本身并不直接支持访问网页这样的操作。要在Lua访问网页,我们可以借助于Lua的网络LuaSocket或者Lua CURL等。 LuaSocket是一个流行的Lua网络,可以方便地进行网络编程。通过使用LuaSocket的http类,我们可以实现在Lua访问网页。 下面是一个使用LuaSocket的示例代码,演示如何在Lua访问网页: ```lua -- 引入 LuaSocket local socket = require("socket") -- 建立一个TCP连接 local connection = socket.tcp() -- 设置连接参数 connection:settimeout(10) -- 设置超时时间为10秒 connection:connect("www.example.com", 80) -- 这里以访问 www.example.com 为例,端口为80 -- 发送HTTP请求头 connection:send("GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n") -- 读取响应内容 local response = connection:receive("*a") -- 输出响应内容 print(response) -- 关闭连接 connection:close() ``` 在上述示例代码,我们使用LuaSocket的tcp类创建了一个TCP连接。然后,我们设置连接的超时时间,并通过connect方法连接到指定的网站和端口。接着,我们发送HTTP请求头,并通过receive方法读取响应内容。最后,我们关闭连接,并将响应内容打印输出。 需要注意的是,运行以上代码需要事先安装LuaSocket。具体的安装方式可以参考LuaSocket的官方文档。 除了LuaSocket,还可以使用其他网络来实现在Lua访问网页。例如,Lua CURL也是一个常用的选择。它提供了丰富的功能,包括文件上传、下载、FTP操作等。 希望以上回答对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值