Lua os.tempname

Имена файлов, возвращаемые Lua os.tempname функция слаба в двух отношениях

  1. В отличие от большинства других языков, невозможно определить собственный префикс для имени файла
  2. _6char генерируемый суффикс, с грубой силой, но тем не менее, можно угадать

Иногда я использовал соленое MD5 текущего времени эпохи + случайное число. Единственная причина, по которой это кажется лучшим решением, - длина строки имени файла.

Есть ли способ генерировать лучшие ( = более длинные?) Имена файлов?

1 ответ

Решение
  1. Цель этой функции Lua состоит только в предоставлении уникального имени.
  2. В стандартной библиотеке Lua не так много вариантов.

Другими словами, либо вы используете то, что доступно в Lua, либо пишете свою собственную функцию. Однако даже если вы используете хэши, случайные числа и т. Д., Вы все равно имеете дело с вероятностью: такой файл может существовать там, так как в этом случае ОС не гарантирует уникальность.

Кстати, рассмотрим использование io.tmpfile вместо os.tmpname,

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