Я пишу функцию на C ++, которая создает временный каталог.Такая функция должна быть максимально переносимой, например, она должна работать в средах linux, mac и win32.Как мне этого добиться?
Версия 3 библиотеки Boost Filesystem предоставляет функцию unique_path() для генерации пути, подходящего для создания временного файла или каталога.
unique_path()
using namespace boost::filesystem; path ph = unique_path(); create_directories(ph);
Проверьте mkdtemp функцию здесь .
mkdtemp
Библиотека файловой системы Boost обеспечивает независимые от платформы функции каталогов. Это немного увеличит размер вашей программы, но использование Boost часто лучше (и зачастую проще), чем использование собственной.
http://www.boost.org/doc/libs/1_43_0/libs/filesystem/doc/index.htm
Для этого нет стандартной функции, поэтому вам нужно будет скомпилировать различные реализации для каждой целевой платформы.
Например, в Windows вы должны использовать временный каталог, который можно получить с помощью вызова GetTempPath ().
mkdtemp(char *template)
http://www.cl.cam.ac.uk/cgi-bin/manpage?3+mkdtemp
Создает временный каталог.