_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:: Ввода-вывода:: файл:: Создать

См. также

Ссылки

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

_fullpath, _wfullpath

_splitpath, _wsplitpath

_makepath_s, _wmakepath_s