_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.