Как создать временный каталог в C ++? - PullRequest
8 голосов
/ 01 августа 2010

Я пишу функцию на C ++, которая создает временный каталог.Такая функция должна быть максимально переносимой, например, она должна работать в средах linux, mac и win32.Как мне этого добиться?

Ответы [ 5 ]

16 голосов
/ 13 мая 2011

Версия 3 библиотеки Boost Filesystem предоставляет функцию unique_path() для генерации пути, подходящего для создания временного файла или каталога.

using namespace boost::filesystem;

path ph = unique_path();
create_directories(ph);
5 голосов
/ 01 августа 2010

Проверьте mkdtemp функцию здесь .

1 голос
/ 01 августа 2010

Библиотека файловой системы Boost обеспечивает независимые от платформы функции каталогов. Это немного увеличит размер вашей программы, но использование Boost часто лучше (и зачастую проще), чем использование собственной.

http://www.boost.org/doc/libs/1_43_0/libs/filesystem/doc/index.htm

0 голосов
/ 01 августа 2010

Для этого нет стандартной функции, поэтому вам нужно будет скомпилировать различные реализации для каждой целевой платформы.

Например, в Windows вы должны использовать временный каталог, который можно получить с помощью вызова GetTempPath ().

0 голосов
/ 01 августа 2010

mkdtemp(char *template)

http://www.cl.cam.ac.uk/cgi-bin/manpage?3+mkdtemp

Создает временный каталог.

...