_makepath _wmakepath
Název cesty můžete vytvořte z komponent.Bezpečnější verze tyto funkce jsou k dispozici; see _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
);
Parametry
path
Vyrovnávací paměť úplnou cestu.drive
Písmeno (A, B a tak dále) obsahuje odpovídající požadovanou jednotku a volitelné koncové dvojtečku._makepathautomaticky vloží dvojtečka ve složené cestě Jestliže chybíPokud drive je NULL nebo odkazuje na prázdný řetězec, zobrazí se ve složené žádné písmeno jednotky path řetězec.dir
Obsahuje cestu adresáře není včetně označení jednotky nebo název skutečný soubor.Koncové lomítko je nepovinný a lomítko (/) nebo zpětné lomítko (\) nebo obojí může být použita v jednom dir argument.Pokud žádné koncové lomítko (/ nebo \) je zadán automaticky vložen.Pokud dir je NULL nebo odkazuje na prázdný řetězec, žádná cesta adresáře je vložena do složené path řetězec.fname
Obsahuje základní název souboru bez přípony všech souborů.Pokud fname je NULL nebo odkazuje na prázdný řetězec, název souboru se vloží do složené path řetězec.ext
Obsahuje skutečné příponu názvu, s nebo bez úvodní tečky (.)._makepathautomaticky vloží období, pokud se nezobrazí v ext.Pokud ext je NULL nebo odkazuje na prázdný řetězec bez přípony je vložena do složené path řetězec.
Poznámky
_makepath Funkce vytvoří řetězec složené cesty z jednotlivých součástí, ukládání výsledku v path.path Může obsahovat písmeno jednotky, cestu adresáře, název souboru a příponu názvu souboru._wmakepathje verze celého znaku _makepath; argumenty _wmakepath jsou celý znak řetězce._wmakepatha _makepath chovají jinak shodně.
Zabezpečení použít řetězec zakončený hodnotou null.Aby se zabránilo přetečení vyrovnávací paměti, řetězec zakončený nesmí přesáhnout velikost path vyrovnávací paměti._makepathzajištění nesmí přesáhnout délku řetězce složené cesty _MAX_PATH.Další informace naleznete v tématu Vyhnout způsobí přetečení vyrovnávací paměti.
Obecný Text rutinní mapování
Rutina Tchar.h |
_UNICODE a _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tmakepath |
_makepath |
_makepath |
_wmakepath |
path Argument musí odkazovat na prázdný vyrovnávací paměť dostatečně velké pro uložení úplnou cestu.Složené path musí být větší než _MAX_PATH konstanta, definované v Stdlib.h.
Pokud je cesta NULL, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametrů.Kromě toho errno je nastavena na EINVAL.NULLjsou povoleny hodnoty všech parametrů.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_makepath |
<stdlib.h> |
_wmakepath |
<stdlib.h> nebo <wchar.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
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 );
}