Документация по LinuxLinuxDoc.Ru 🔍

mkstemp - создает временный файл с уникальным именем

НАЗВАНИЕ
mkstemp - создает временный файл с уникальным именем

СИНТАКСИС

#include

int mkstemp(char *template);

ОПИСАНИЕ

Функция mkstemp() создает временный файл с именем,
соответствующим строке из template. Последние шесть
символов template должны быть XXXXXX, и именно они
заменяются строкой, которая делает имя файла уникальным.
Затем создается файл для чтения/записи и уровнями доступа,
равными либо 0666 (в glibc 2.0.6 и более ранних версий),
либо 0600 (в glibc 2.0.7 и более поздних версий). Так как
она будет меняться, то template не может быть строковой
константой, а должна быть определена как символьный
массив. Файл открывается с флагом O_EXCL, гарантирующим,
что при успешном возвращении mkstemp мы будем единственным
пользователем.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функция mkstemp() возвращает описатель fd временного файла
или -1 при ошибках.

КОДЫ ОШИБОК
EINVAL (последние шесть символов template не являлись
XXXXXX. template не меняется.);

EEXIST (нельзя создать уникальное имя временного файла.
Содержимое template в этот момент не определено.).

ЗАМЕЧАНИЯ
Прежняя работа функции (создание файла с режимом 0666)
могла быть рискованной для системы безопасности, особенно
поскольку другие Unix-дополнения используют 0600 и
некоторые могли проигнорировать эту особенность при
переносе программ.

В более общем случае, спецификация POSIX ничего не говорит
о режимах файлов, так что приложение должно убедиться
перед вызовом mkstemp в том, что его umask установлена
правильно.

СООТВЕТСТВИЕ СТАНДАРТАМ
BSD 4.3, POSIX 1003.1-2001

ЗАМЕЧАНИЕ
Прототип данной функции есть в (для libc4,
libc5, glibc1); glibc2 соответствует "Single Unix Specifi-
cation" и имеет прототип в .
Читать новости Linux в Telegram
Linux - mkstemp - создает временный файл с уникальным именем
Мы в соцсетях ✉