Sdílet prostřednictvím


_makepath, _wmakepath

Vytvořte název cesty ze součástí. K dispozici jsou bezpečnější verze těchto funkcí; viz _makepath_s, _wmakepath_s.

Syntaxe

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
);

Parametry

path
Vyrovnávací paměť úplné cesty.

drive
Obsahuje písmeno (A, B atd.), které odpovídá požadované jednotce a volitelnému koncovému dvojtečku. _makepath vloží dvojtečku automaticky do složené cesty, pokud chybí. Pokud drive je NULL nebo odkazuje na prázdný řetězec, ve složeného path řetězci se nezobrazí žádné písmeno jednotky.

dir
Obsahuje cestu adresářů, včetně návrhátoru jednotky nebo skutečného názvu souboru. Koncové lomítko je volitelné a buď lomítko (/) nebo zpětné lomítko (\), nebo obojí může být použito v jednom dir argumentu. Pokud není zadáno žádné koncové lomítko (/ nebo \), vloží se automaticky. Pokud dir je NULL nebo odkazuje na prázdný řetězec, není do složeného path řetězce vložena žádná cesta k adresáři.

fname
Obsahuje název základního souboru bez přípon názvů souborů. Pokud fname je NULL nebo odkazuje na prázdný řetězec, do složeného path řetězce se nevloží žádný název souboru.

ext
Obsahuje skutečnou příponu názvu souboru s počáteční tečkou (.nebo bez). _makepath vloží tečku automaticky, pokud se nezobrazí v ext. Pokud ext je NULL nebo odkazuje na prázdný řetězec, do složeného path řetězce se nevloží žádné rozšíření.

Poznámky

Funkce _makepath vytvoří složený řetězec cesty z jednotlivých komponent a uloží výsledek do path. Může path obsahovat písmeno jednotky, cestu k adresáři, název souboru a příponu názvu souboru. _wmakepath je verze širokého znaku _makepath; argumenty, které mají _wmakepath být řetězce širokého znaku. _wmakepath a _makepath chovat se stejně jinak.

Poznámka zabezpečení – Použijte řetězec ukončený hodnotou null. Aby se zabránilo přetečení vyrovnávací paměti, nesmí řetězec ukončený hodnotou null překročit velikost path vyrovnávací paměti. _makepath nezajistí, aby délka složeného řetězce cesty nepřekračovala _MAX_PATH. Další informace najdete v tématu Zabránění přetečení vyrovnávací paměti.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

Rutina Tchar.h _UNICODE a _MBCS není definován _MBCS Definovány _UNICODE Definovány
_tmakepath _makepath _makepath _wmakepath

Argument path musí odkazovat na prázdnou vyrovnávací paměť dostatečně velká, aby se podržel úplná cesta. Složený soubor path nesmí být větší než konstanta _MAX_PATH definovaná v souboru Stdlib.h.

Pokud je NULLcesta , je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Kromě toho errno je nastavena na EINVAL. NULL pro všechny ostatní parametry jsou povoleny hodnoty.

Požadavky

Rutina Požadovaný hlavičkový soubor
_makepath <stdlib.h>
_wmakepath <stdlib.h> nebo <wchar.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

// 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 );
}
Path created with _makepath: c:\sample\crt\makepath.c

Path extracted with _splitpath:
   Drive: c:
   Dir: \sample\crt\
   Filename: makepath
   Ext: .c

Viz také

Zpracování souborů
_fullpath, _wfullpath
_splitpath, _wsplitpath
_makepath_s, _wmakepath_s