Sdílet prostřednictvím


_splitpath, _wsplitpath

Název cesty rozdělují na součásti.Bezpečnější verze těchto funkcí jsou k dispozici; viz _splitpath_s, _wsplitpath_s.

void _splitpath(
   const char *path,
   char *drive,
   char *dir,
   char *fname,
   char *ext 
);
void _wsplitpath(
   const wchar_t *path,
   wchar_t *drive,
   wchar_t *dir,
   wchar_t *fname,
   wchar_t *ext 
);

Parametry

  • path
    Úplná cesta.

  • drive
    Písmeno následované dvojtečkou (:).Můžete předat NULL pro tento parametr, pokud není nutné písmeno jednotky.

  • dir
    Cesta k adresáři, včetně koncové lomítko.Lomítka ( / ), zpětná lomítka ( \ ), nebo mohou kombinovat.Můžete předat NULL pro tento parametr, pokud nepotřebujete úplnou cestu k adresáři.

  • fname
    Základní název souboru (bez přípony).Můžete předat NULL pro tento parametr, pokud název souboru není nutné.

  • ext
    Přípona názvu souboru, včetně úvodní období (.).Můžete předat NULL pro tento parametr, pokud nepotřebujete příponu názvu souboru.

Poznámky

_splitpath Funkce rozdělí na čtyři součásti cesty._splitpathautomaticky zpracovává vícebajtové znakové řetězce argumenty podle potřeby, uznávajíce vícebajtové znakové sekvence podle vícebajtová znaková stránka aktuálně používán._wsplitpath je širokoznaká verze _splitpath. Argumenty pro _wsplitpath jsou širokoznaké řetězce.Tyto funkce se chovají jinak identicky.

Bezpečnostní poznámka Tyto funkce způsobují potenciální ohrožení způsobené problémem přetečení vyrovnávací paměti.Problémy s přetečením vyrovnávací paměti jsou častou metodou útoku na systém. Výsledkem je negarantované zvýšení úrovně oprávnění.Další informace naleznete v tématu Předcházení přetečení vyrovnávací paměti.Bezpečnější verze tyto funkce jsou k dispozici; Viz _splitpath_s, _wsplitpath_s.

Rutinní mapování obecného textu

Rutina TCHAR.H

_UNICODE & _MBCS není definováno

_MBCS definováno

_UNICODE definováno

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Každá součást úplné cesty jsou uloženy v samostatné vyrovnávací paměti; manifest konstanty _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, a _MAX_EXT (podle STDLIB.H) zadejte maximální velikost pro každou součást souboru.Soubor součásti, které jsou větší než odpovídající manifestu konstanty způsobit poškození haldy.

Každé vyrovnávací paměti musí být stejně velký jako jeho odpovídající konstanta manifestu pro zamezení možného přetečení vyrovnávací paměti.

V následující tabulce jsou uvedeny hodnoty konstant manifestu.

Název

Value

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

Je-li úplná cesta neobsahuje součásti (například název souboru), _splitpath přiřadí prázdné řetězce odpovídající vyrovnávací paměti.

Můžete předat NULL k _splitpath pro každý ukazatel, než path , není nutné.

Pokud path je NULL, je vyvolána obslužná rutina neplatného parametru, jak je popsáno v Ověření parametru.Pokud smí provádění pokračovat, errno se nastaví na EINVAL a funkce vrátí EINVAL.

Požadavky

Rutina

Požadované záhlaví

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> nebo <wchar.h>

Další informace o kompatibilitě naleznete v úvodu tématu Kompatibilita.

Příklad

Naleznete v příkladu pro _makepath.

Ekvivalent v rozhraní .NET Framework

Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.

Viz také

Referenční dokumentace

Zpracování souborů

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s