_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.