os.tmpname介绍
os.tmpname用于返回一个临时文件路径,保证在系统内是唯一的,不会与之前的重复。需要注意的是它只返回文件路径,文件并没有被打开返回(其实它内部实现是调用mkstemp,之后又关闭了打开的文件描述符)。
os.tmpname使用os.tmpname返回的文件路径是用0600权限创建的,也就是说只有文件拥有者才能读写该文件,如果想对此文件操作可以调用io.open先打开它,然后再调用文件相关方法进行操作。
一般来说创建的临时文件也是需要清除的,这时我们可以调用os.remove来删除它,如下代码:
local tmp_file = os.tmpname()
local f1 = io.open(tmp_file, "w")
f1:write("Hello, Lua!\n")
f1:flush()
os.execute("cat "..tmp_file)
os.remove(tmp_file)
os.execute("cat "..tmp_file)
输出如下:
Hello, Lua!
cat: /tmp/lua_cwpZcj: No such file or directory
os.tmpname总结
os.tmpname以0600权限创建一个唯一的文件路径,如果想对文件后续操作可以调用io.open打开文件,如果最后想清除文件,可以调用os.remove函数。