Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       mktemp - создаёт уникальное имя для временного файла

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <stdlib.h>

       char *mktemp(char *template);

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

       mktemp():
           Since glibc 2.12:
               (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200112L)
                   || /* glibc >= 2.19: */ _DEFAULT_SOURCE
                   || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
           Before glibc 2.12:
               _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500

ОПИСАНИЕ

       Никогда не используйте эту функцию; см. ДЕФЕКТЫ

       Функция  mktemp()  генерирует  на  основе  шаблона  template уникальное имя для временного
       файла. Последние шесть символов template должны быть равны XXXXXX, они будут  заменены  на
       строку,  которая  сделает имя файла уникальным. Так как template будет меняться, он должен
       быть объявлен не строковой константой, а массивом символов.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       Функция mktemp() всегда возвращает template.  При  создании  уникального  имени  последние
       шесть байтов template заменяются так, что имя становится уникальным (то есть, такого имени
       ещё нет). Если уникальное имя невозможно создать, template будет равно  пустой  строке,  а
       errno будет назначен код ошибки.

ОШИБКИ

       EINVAL Последние шесть символов template не равны XXXXXX.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌───────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ИнтерфейсАтрибутЗначение │
       ├───────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │mktemp()                                               │ Безвредность в нитях │ MT-Safe  │
       └───────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       4.3BSD, POSIX.1-2001. В POSIX.1-2008 спецификация mktemp() удалена.

ДЕФЕКТЫ

       Никогда  не  используйте  mktemp().  Некоторые реализации следуют 4.3BSD и заменяют XXXXXX
       текущим ID процесса и одним символом, поэтому может быть возвращено только  26  уникальных
       имен.  С  одной  стороны  такие  имена  легко  подобрать,  а  с  другой  есть  вероятность
       возникновения состязательности при проверке существования имени и открытия файла,  поэтому
       каждое  использование  mktemp()  является  угрозой безопасности. Состязательность не может
       возникнуть, если использовать функции mkstemp(3) и mkdtemp(3).

СМ. ТАКЖЕ

       mktemp(1), mkdtemp(3), mkstemp(3), tempnam(3), tmpfile(3), tmpnam(3)

ПЕРЕВОД

       Русский перевод этой страницы руководства был сделан aereiae  <aereiae@gmail.com>,  Alexey
       <a.chepugov@gmail.com>,  Azamat  Hackimov  <azamat.hackimov@gmail.com>, Dmitriy S. Seregin
       <dseregin@59.ru>,      Dmitry      Bolkhovskikh      <d20052005@yandex.ru>,       ITriskTI
       <ITriskTI@gmail.com>,  Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван
       Павлов <pavia00@gmail.com> и Малянов Евгений Викторович <maljanow@outlook.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.