Я хотел бы создать уникальный временный каталог в Windows из некоторого кода C (а не C++ или C#). Я хочу сделать это, чтобы я мог поместить некоторые файлы temp в каталог, а затем легко удалить их, когда я закончил (путем рекурсивного удаления каталога).Создание уникального временного каталога из чистого C в windows
Я по существу ищу эквивалент linux mkdtemp
функция. Существует ответ C# here, и ответы на this question предлагают использовать Boost. Но поскольку я использую C, эти решения не работают для меня.
Лучшим, что я смог придумать до сих пор является использование GetTempFileName
следует CreateDirectory
, но проблема есть в том, что если я попрошу GetTempFileName
создать уникальное имя файла, он будет также создайте файл (который мне не нужен, так как я хочу сделать каталог вместо этого).
Relatedly, есть GetTempPath
, который возвращает расположение временной папки пользователя из окружения переменных - но так как я хочу, чтобы создать свой собственный каталог, который я могу безопасно удалить позже, мне еще нужно создать каталог внутри любой путь будет возвращен.
Похоже, если я хочу, уникальный каталог будет создан, я должен буду создать временный файл, получить имя, удалить его, а затем создать каталог с таким же именем - что звучит очень грязно , Любые другие идеи?
Идея в вашем последнем абзаце не будет работать - она будет подвержена условиям гонки. –