_splitpath_s _wsplitpath_s
Název cesty rozdělí na součásti.Tyto verze jsou _splitpath, _wsplitpath s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.
errno_t _splitpath_s(
const char * path,
char * drive,
size_t driveNumberOfElements,
char * dir,
size_t dirNumberOfElements,
char * fname,
size_t nameNumberOfElements,
char * ext,
size_t extNumberOfElements
);
errno_t _wsplitpath_s(
const wchar_t * path,
wchar_t * drive,
size_t driveNumberOfElements,
wchar_t *dir,
size_t dirNumberOfElements,
wchar_t * fname,
size_t nameNumberOfElements,
wchar_t * ext,
size_t extNumberOfElements
);
template <size_t drivesize, size_t dirsize, size_t fnamesize, size_t extsize>
errno_t _splitpath_s(
const char *path,
char (&drive)[drivesize],
char (&dir)[dirsize],
char (&fname)[fnamesize],
char (&ext)[extsize]
); // C++ only
template <size_t drivesize, size_t dirsize, size_t fnamesize, size_t extsize>
errno_t _wsplitpath_s(
const wchar_t *path,
wchar_t (&drive)[drivesize],
wchar_t (&dir)[dirsize],
wchar_t (&fname)[fnamesize],
wchar_t (&ext)[extsize]
); // C++ only
Parametry
[v]path
Úplná cesta.[výstup]drive
Jednotka písmeno následované dvojtečkou (:).Můžete předat NULL pro tento parametr, pokud je nutné písmeno jednotky.[v]driveNumberOfElements
Velikost drive znaků na jednobajtové nebo široké vyrovnávací paměť.Pokud drive je NULL, tato hodnota musí být 0.[výstup]dir
Cesta k adresáři, včetně koncové lomítko.Předat lomítka ( / ), zpětná lomítka ( \ ), nebo obě použít.Můžete předat NULL pro tento parametr, pokud není nutné cestu k adresáři.[v]dirNumberOfElements
Velikost dir znaků na jednobajtové nebo široké vyrovnávací paměť.Pokud dir je NULL, tato hodnota musí být 0.[výstup]fname
Základní název souboru (bez přípony).Můžete předat NULL pro tento parametr, pokud není nutné název souboru.[v]nameNumberOfElements
Velikost fname znaků na jednobajtové nebo široké vyrovnávací paměť.Pokud fname je NULL, tato hodnota musí být 0.[výstup]ext
Přípona názvu souboru, včetně úvodní období (.).Můžete předat NULL pro tento parametr, pokud není nutné příponu názvu souboru.[v]extNumberOfElements
Velikost ext znaků na jednobajtové nebo široké vyrovnávací paměť.Pokud ext je NULL, tato hodnota musí být 0.
Vrácená hodnota
Nula, pokud je úspěšná. Kód chyby při selhání.
Chybové podmínky
Podmínka |
Vrácená hodnota |
---|---|
pathje NULL |
EINVAL |
driveis NULL, driveNumberOfElements is non-zero |
EINVAL |
driveis non-NULL, driveNumberOfElements is zero |
EINVAL |
diris NULL, dirNumberOfElements is non-zero |
EINVAL |
diris non-NULL, dirNumberOfElements is zero |
EINVAL |
fnameis NULL, nameNumberOfElements is non-zero |
EINVAL |
fnameis non-NULL, nameNumberOfElements is zero |
EINVAL |
extis NULL, extNumberOfElements is non-zero |
EINVAL |
extis non-NULL, extNumberOfElements is zero |
EINVAL |
Pokud dojde k některé z výše uvedených podmínek, je vyvolána neplatný parametr popisovače, jak je popsáno v Ověření parametrů .Pokud je povoleno spuštění pokračovat, nastavit tyto funkce errno na EINVAL a vrátit se EINVAL.
Pokud některé vyrovnávací paměti je příliš krátký držet výsledek, tyto funkce vymazat vyrovnávací paměti na prázdný řetězec, nastavte errno na ERANGEa ERANGE.
Poznámky
_splitpath_s Funkce rozdělí na čtyři součásti cesty._splitpath_s automaticky zpracovává argumenty řetězec vícebajtových znaků podle potřeby UZNÁVAJÍCE vícebajtové znakové sekvence podle vícebajtové znakové stránky právě používán._wsplitpath_s je verze celého znaku _splitpath_s; argumenty _wsplitpath_sjsou celý znak řetězce.Tyto funkce chovat stejně jinak
Obecný Text rutinní mapování
TCHAR.Rutina H |
_UNICODE & _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tsplitpath_s |
_splitpath_s |
_splitpath_s |
_wsplitpath_s |
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 (definováno v STDLIB.H) zadejte maximální povolenou velikost pro každou součást souboru.Soubor větší než odpovídající manifestu konstanty způsobit poškození haldy součásti.
V následující tabulce jsou uvedeny hodnoty konstanty manifestu.
Název |
Value |
---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
256 |
_MAX_FNAME |
256 |
_MAX_EXT |
256 |
Pokud je úplná cesta neobsahuje součásti (například soubor), _splitpath_s přiřadí prázdný řetězec odpovídající vyrovnávací paměti.
V jazyce C++ použití těchto funkcí je zjednodušeno díky šablony přetížení; přetížení lze odvodit vyrovnávací paměti automaticky, není tedy třeba zadat argument velikost.Další informace naleznete v tématu Přetížení šablony zabezpečení.
Ladicí verze tyto funkce nejprve vyplnit vyrovnávací paměti s 0xFD.Toto chování lze zakázat pomocí _CrtSetDebugFillThreshold.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_splitpath_s |
<stdlib.h> |
_wsplitpath_s |
<stdlib.h> nebo <wchar.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
Viz příklad pro _makepath_s _wmakepath_s.
Ekvivalent v rozhraní .NET Framework
Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.