Sdílet prostřednictvím


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

Ekvivalent v rozhraní .NET Framework

System::IO::file:: vytvořit

Viz také

Referenční dokumentace

Zpracování souborů

_fullpath _wfullpath

_splitpath _wsplitpath

_makepath_s _wmakepath_s