Получить имя файла, который был создан mkstemp()
Можно ли получить имя файла (и путь) из вызова mkstemp()
? А если "да", то как?
2 ответа
От mkstemp
страница справочника:
Последние шесть символов шаблона должны быть "XXXXXX", и они заменяются строкой, которая делает имя файла уникальным. Поскольку он будет изменен, шаблон не должен быть строковой константой, а должен быть объявлен как символьный массив.
Итак, вы объявляете массив и передаете его функции, которая изменит его, а затем у вас есть имя файла в массиве.
Входная строка изменена на имя файла. Следовательно, он не может быть строковым литералом.
POSIX говорит о mkstemp()
:
#include <stdlib.h> int mkstemp(char *template);
mkstemp()
функция должна заменить содержимое строки, на которую указываетtemplate
по уникальному пути и вернуть дескриптор файла для файла, открытого для чтения и записи.... Строка вtemplate
должен выглядеть как путь с шестью конечными "X";mkstemp()
заменяет каждый 'X' символом из набора символов переносимого имени файла....
Эта же страница также описывает mkdtemp()
который может быть использован для создания временного каталога.