Создать уникальный временный файл
#include <stdlib.h>char * mktemp( char *template );
/tmp/temp
.XXXX.libc
Функция mktemp() берёт заданный шаблон имени файла и перезаписывает его часть для создания имени файла. Это имя файла является уникальным и подходит для использования приложением. Хвост в конце заменяется текущим номером процесса и/или уникальной комбинацией букв. Количество уникальных имён файлов, которые может вернуть mktemp(), зависит от количества предоставленных символов X. Например, если будет указано шесть X, mktemp() проверит примерно 26⁶ комбинаций.
Функция mkstemp() (в отличие от этой функции) создаёт файл шаблона, права доступа 0600
(т.е. чтение-запись для владельца), и возвращает дескриптор файла, открытый для чтения и записи. Это позволяет избежать гонки между проверкой существования файла и его открытием для использования.
Эта функция также может установить errno в любое значение, заданное функцией stat().
POSIX 1003.1 X/Open Systems Interfaces Extension
Вообще говоря, следует избегать использования mktemp(), потому что вредоносный процесс может использовать состояние гонки в промежутке времени между созданием временного имени файла с помощью mktemp() и использованием временного имени вызывающей стороной. Вместо этого используйте mkstemp().
Эта функция может создавать только 26
уникальных имен файлов на поток для каждого уникального шаблона.
chmod(). getpid(). mkstemp(), open() stat(). tmpfile(), tmpnam()
Предыдущий раздел: Описание API системной библиотеки