# MkTemp

Функция `FSF.MkTemp` создаёт имя временного файла на основе шаблона.

    size_t WINAPI MkTemp(
      wchar_t *Dest,
      size_t DestSize,
      const wchar_t *Prefix
    );

### Параметры

Dest
Указатель на буфер, который получит полное имя временного файла в верхнем регистре. Установите `Dest = NULL` для того, чтобы узнать необходмый размер буфера.
DestSize
Максимальное количество символов, которое можно поместить в `Dest`, с заключительным нулём.
Prefix
Указывает на оканчивающуюся нулём строку-префикс. Максимум первые три символа из этой строки будут использованы в качестве префикса имени файла.
Если `Prefix = NULL` или пустой строке, то будет применён стандартный префикс `"FAR"`

### Возвращаемое значение

Функция возвращает необходимый размер буфера `Dest` в символах.

### Примечание

1. Имя временного файла формируется объединением пути к временному каталогу (получаемого через вызов функции GetTempPath), переданного префикса, набора случайных шестнадцатеричных цифр. Формат:

   `PrefXXXP.PTT`

   здесь
   Pref - 4-х символьный префикс;
   XXX - три 16-ричных цифры;
   PP - две 16-ричных цифры PID (результат функции GetCurrentProcessId);
   TT - две 16-ричных цифры TID (результат функции GetCurrentThreadId).

2. Функция, физически не создаёт файл на диске, только формирует имя.

### Пример

    wchar_t TempName[MAX_PATH];

    FSF.MkTemp(TempName,MAX_PATH,NULL);         -> "FTMP000D.P50"
    FSF.MkTemp(TempName,MAX_PATH,L"");          -> "FTMP000D.P50"
    FSF.MkTemp(TempName,MAX_PATH,L"MY");        -> "MY00000D.P50"
    FSF.MkTemp(TempName,MAX_PATH,L"BaR");       -> "BAR0000D.P50"
    FSF.MkTemp(TempName,MAX_PATH,L"TstPlugin"); -> "TSTP000D.P50"

Смотрите также: