【发布时间】:2016-02-28 10:24:40
【问题描述】:
上传表示为 tmpfile() 的文件,并将在脚本退出后删除。 删除 tmpfile 后如何硬链接此文件以保留其内容?
如何通过句柄获取文件名?
> a=io.tmpfile()
> print(a)
file (0x20c8790)
> lfs=require"lfs"
> lfs.link(a,"/tmp/aaaa")
stdin:1: bad argument #1 to 'link' (string expected, got FILE*)
stack traceback:
[C]: in function 'lfs.link'
stdin:1: in main chunk
[C]: in ?
此文件太大,无法逐字节复制。
【问题讨论】:
-
只使用常规文件。在 Windows 上,我知道存在通过句柄获取名称的方法。也可以从 FILE* 获取句柄(但如果与静态 MSCRT 链接可能会出现一些问题)。但是你真的需要这个而不是手动创建文件并将其用作 tmp 吗?这是我的暗示。 github.com/moteus/lua-path/blob/master/lua/path.lua#L229
-
使用os.tmpname()代替io.tmpfile()
-
io.tmpfile() 在库中,所以我不想编辑它
标签: lua temporary-files tmp tmpfs luafilesystem