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