Сохранить Lua tmpfile после выполнения

Загружает файл, представленный как 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 ?

Этот файл слишком велик, чтобы копировать его байтом в другой.

1 ответ

io.tmpfile использует tmpfile из stdio.h, поэтому отрегулировать эту экспортированную функцию будет невозможно. Вы можете использовать библиотеки, такие как pl.path, чтобы получить полный путь к временному файлу.

Другие вопросы по тегам