Lua os.tempname
Имена файлов, возвращаемые Lua os.tempname
функция слаба в двух отношениях
- В отличие от большинства других языков, невозможно определить собственный префикс для имени файла
_6char
генерируемый суффикс, с грубой силой, но тем не менее, можно угадать
Иногда я использовал соленое MD5 текущего времени эпохи + случайное число. Единственная причина, по которой это кажется лучшим решением, - длина строки имени файла.
Есть ли способ генерировать лучшие ( = более длинные?) Имена файлов?
1 ответ
Решение
- Цель этой функции Lua состоит только в предоставлении уникального имени.
- В стандартной библиотеке Lua не так много вариантов.
Другими словами, либо вы используете то, что доступно в Lua, либо пишете свою собственную функцию. Однако даже если вы используете хэши, случайные числа и т. Д., Вы все равно имеете дело с вероятностью: такой файл может существовать там, так как в этом случае ОС не гарантирует уникальность.
Кстати, рассмотрим использование io.tmpfile
вместо os.tmpname
,