_makepath, _wmakepath
Создайте имя пути из компонентов.Более безопасные версии этих функций доступны; см. _makepath_s, _wmakepath_s.
void _makepath(
char *path,
const char *drive,
const char *dir,
const char *fname,
const char *ext
);
void _wmakepath(
wchar_t *path,
const wchar_t *drive,
const wchar_t *dir,
const wchar_t *fname,
const wchar_t *ext
);
Параметры
path
Буфер полного пути.drive
Содержит букву (a, B, и т д), соответствующий требуемому диску и необязательному замыкающий двоеточию._makepath вставляет двоеточие автоматически в составной путь, если он отсутствует.If drive существует NULL или указывает на пустую строку, буква диска отображаются в составной path строка.dir
Содержит путь к каталогам, не включая обозначение диска или фактическое имя файла.Конечный косая черта является необязательной, и передняя косая черта (/), обратная косая черта (\), либо могут использоваться в одном dir аргумент.Если отсутствует замыкающий косая черта (/\) не указана, она вставляется автоматически.If dir существует NULL или указывает на пустую строку, формирование путь к каталогу вставляются в составной path строка.fname
Содержит базовое имя файла без расширения имени файла.If fname существует NULL или указывает на пустую строку, имя файла вставляются в составной path строка.ext
Содержит фактическое расширение имени файла, с или без ведущих точки (.)._makepath вводит точку автоматически, если он не отображается в ext.If ext существует NULL или указывает на пустую строку, ни одно из расширений вставляются в составной path строка.
Заметки
_makepath функция создает составная строка пути, из отдельных компонентов, результат in path.path может включать букву диска, путь к каталогу, имя файла и расширение имени файла._wmakepath версия расширенных символов _makepath; аргументы _wmakepath характерные черты._wmakepath и _makepath поступайте совпадают, в противном случае.
примечание по безопасности используйте null-завершенную строку.Чтобы избежать переполнения буфера, null-завершенная строка не должна превышать размер path буфер._makepath не гарантирует, что длина пути превышает составной строки _MAX_PATH.Дополнительные сведения см. в разделе Исключение переполнения буфера.
Сопоставления подпрограммы Родов-Текста
Подпрограмма Tchar.h |
Не указанные _UNICODE и _MBCS |
Указанный символ _MBCS |
Указанный _UNICODE |
---|---|---|---|
_tmakepath |
_makepath |
_makepath |
_wmakepath |
path аргумент должен указывать на пустой буфер недостаточно большой, чтобы поддерживать полный путь.Составной path должно быть не больше _MAX_PATH константа, определенная в Stdlib.h.
Если путь NULLнедопустимый параметр, обработчик вызывается, как описано в разделе Проверка параметров.Кроме того, errno равно EINVAL.NULL значения допускаются для всех прочих параметров.
Требования
Процедура |
Обязательный заголовок |
---|---|
_makepath |
<stdlib.h> |
_wmakepath |
<stdlib.h> OR <wchar.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
// crt_makepath.c
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char path_buffer[_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); // C4996
// Note: _makepath is deprecated; consider using _makepath_s instead
printf( "Path created with _makepath: %s\n\n", path_buffer );
_splitpath( path_buffer, drive, dir, fname, ext ); // C4996
// Note: _splitpath is deprecated; consider using _splitpath_s instead
printf( "Path extracted with _splitpath:\n" );
printf( " Drive: %s\n", drive );
printf( " Dir: %s\n", dir );
printf( " Filename: %s\n", fname );
printf( " Ext: %s\n", ext );
}
Эквивалент в .NET Framework
System:: Ввода-вывода:: файл:: Создать