_splitpath, _wsplitpath

Разбейте имя пути в компоненты.Более безопасные версии этих функций, см. в разделе _splitpath_s, _wsplitpath_s.

void _splitpath(
   const char *path,
   char *drive,
   char *dir,
   char *fname,
   char *ext 
);
void _wsplitpath(
   const wchar_t *path,
   wchar_t *drive,
   wchar_t *dir,
   wchar_t *fname,
   wchar_t *ext 
);

Параметры

  • path
    Полный путь.

  • drive
    Буква диска и двоеточия (:).Можно передать NULL для этого параметра, если не требуется буква диска.

  • dir
    Путь к каталогу, включая завершающий косую черту.Косую черту (front / обратные косые черты () \ ) или оба может использоваться.Можно передать NULL если для данного параметра не требуется путь к каталогу.

  • fname
    Базовое имя файла (без расширения).Можно передать NULL для этого параметра, если не нужно имя файла.

  • ext
    Расширение имени файла, включая период (ведущий.).Можно передать NULL для этого параметра, если нет необходимости расширение имени файла.

Заметки

_splitpath функция нарушает путь в его 4 компонента._splitpath автоматически обрабатывает аргументы характерной черты, узнающ последовательности многобайтового символов в соответствии с многобайтовой кодовой странице в настоящий момент используется._wsplitpath версия расширенных символов _splitpath; аргументы _wsplitpath характерные черты.Эти функции ведут себя идентично в противном случае.

примечание по безопасности    Эти функции создают потенциальную угрозу принесенную рядом с проблемой переполнения буфера.Ошибки переполнения буфера частый метод атаки системы, в результате чего получении произвольного несанкционированном прав.Дополнительные сведения см. в разделе Исключение переполнения буфера.Более безопасные версии этих функций доступны; см. _splitpath_s, _wsplitpath_s.

Сопоставления подпрограммы Родов-Текста

Подпрограмма TCHAR.H

_MBCS не заданные _UNICODE &

Указанный символ _MBCS

Указанный _UNICODE

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Каждый компонент полного пути хранятся в отдельном буфере; константы манифеста _MAX_DRIVE" _MAX_DIR" _MAX_FNAMEи _MAX_EXT (определяется в STDLIB.H) укажите максимальный размер файла для каждого компонента.Компоненты файла манифеста константы, превышающие соответствующий вызывает повреждение кучи.

Каждый буфер как должен быть большими, как соответствующая константа манифест во избежание потенциального переполнение буфера.

В следующей таблице перечислены значения очевидных констант.

Имя

Значение

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

Если полный путь не содержит компонент (например, имя файла) _splitpath присвоит пустые строки с соответствующим буферы.

Можно передать NULL В _splitpath для любого параметра, отличный от path, что.

If path существует NULLнедопустимый параметр, обработчик вызывается, как описано в разделе Проверка параметров.Если выполнение может продолжить, errno равно EINVAL и функция возвращает EINVAL.

Требования

Процедура

Обязательный заголовок

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> OR <wchar.h>

Дополнительные сведения о совместимости см. Совместимость во введении.

Пример

См. пример _makepath.

Эквивалент в .NET Framework

Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Обработка файла

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s