Функция GetTempPath2A (fileapi.h)

Извлекает путь к каталогу, назначенному для временных файлов, на основе привилегий вызывающего процесса.

Синтаксис

DWORD GetTempPath2A(
  [in]  DWORD BufferLength,
  [out] LPSTR Buffer
);

Параметры

[in] BufferLength

Размер строкового буфера, определяемого lpBuffer, в TCHAR.

[out] Buffer

Указатель на буфер строки, который получает строку, завершающуюся значением NULL, задающую путь к временному файлу. Возвращаемая строка заканчивается обратной косой чертой, например "C:\TEMP\".

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

Если функция выполняется успешно, возвращаемое значение равно длине строки, скопированной в lpBuffer в TCHARs, не включая завершающий символ NULL. Если возвращаемое значение больше nBufferLength, возвращаемое значение равно длине буфера, необходимого для хранения пути в TCHAR.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Максимально возможное возвращаемое значение — MAX_PATH+1 (261).

Комментарии

При вызове этой функции из процесса, работающего под управлением SYSTEM, она возвращает путь C:\Windows\SystemTemp, который недоступен для процессов, отличных от SYSTEM. Для процессов, отличных от SYSTEM, GetTempPath2 будет вести себя так же, как и GetTempPath.

Функция GetTempPath2 проверяет наличие переменных среды в следующем порядке и использует первый найденный путь:

  1. Путь, заданный переменной среды TMP.
  2. Путь, заданный переменной среды TEMP.
  3. Путь, заданный переменной среды USERPROFILE.
  4. Каталог Windows.
Обратите внимание, что функция не проверяет, существует ли путь, и не проверяет, имеет ли текущий процесс какие-либо права доступа к пути. Функция GetTempPath2 возвращает правильно отформатированную строку, которая задает полный путь на основе порядка поиска переменной среды, как указано ранее. Приложение должно проверить наличие пути и соответствующие права доступа к нему, прежде чем использовать его для операций ввода-вывода файлов.

Поведение символьной ссылки. Если путь указывает на символьную ссылку, имя временного пути сохраняет все символические ссылки.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
SMB 3.0 Transparent Failover (TFO) Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

Примеры

Пример см. в разделе Создание и использование временного файла.

Примечание

Заголовок fileapi.h определяет GetTempPath2 в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера Сборка Windows Server 20348
Верхняя часть fileapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Функции управления файлами

GetTempFileName

Символьные ссылки