Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Dela upp en sökväg i komponenter. Mer säkra versioner av dessa funktioner finns i _splitpath_s, _wsplitpath_s.
Syntax
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
);
Parameterar
path
Fullständig sökväg.
drive
Enhetsbeteckning följt av ett kolon (:). Du kan skicka NULL för den här parametern om du inte behöver enhetsbeteckningen.
dir
Katalogsökväg, inklusive avslutande snedstreck. Snedstreck (/), snedstreck (\) eller båda kan användas. Skicka NULL för den här parametern om du inte behöver katalogsökvägen.
fname
Basfilnamn (inget tillägg). Skicka NULL för den här parametern om du inte behöver filnamnet.
ext
Filnamnstillägg, inklusive inledande period (.). Skicka NULL för den här parametern om du inte behöver filnamnstillägget.
Anmärkningar
Funktionen _splitpath delar upp en sökväg i dess fyra komponenter.
_splitpath hanterar automatiskt strängargument med flerabytestecken efter behov och identifierar sekvenser med flerabytestecken enligt den kodsida med flerabyte som för närvarande används.
_wsplitpath är en bred teckenversion av _splitpath; argumenten som ska _wsplitpath vara breda teckensträngar. Dessa funktioner fungerar identiskt annars.
Säkerhetsanteckning Dessa funktioner omfattas av buffertöverskridning. Problem med buffertöverskridning är en vanlig metod för systemattacker, vilket resulterar i en obefogad behörighetshöjning. Mer information finns i Undvika buffertöverskridningar. Säkrare versioner av dessa funktioner är tillgängliga. se _splitpath_s, _wsplitpath_s.
Som standard är den här funktionens globala tillstånd begränsat till programmet. Information om hur du ändrar det här beteendet finns i Globalt tillstånd i CRT.
Allmän textrutinmappning
TCHAR.H rutin |
_UNICODE och _MBCS inte definierad |
_MBCS definierad |
_UNICODE definierad |
|---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Varje komponent i den fullständiga sökvägen lagras i en separat buffert. manifestkonstanterna _MAX_DRIVE, _MAX_DIR, _MAX_FNAMEoch _MAX_EXT (definieras i STDLIB.H) anger den maximala storleken för varje filkomponent. Filkomponenter som är större än motsvarande manifestkonstanter orsakar heapfel.
Varje buffert måste vara lika stor som motsvarande manifestkonstant för att undvika potentiell buffertöverskridning.
I följande tabell visas värdena för manifestkonstanterna.
| Namn | Värde |
|---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
256 |
_MAX_FNAME |
256 |
_MAX_EXT |
256 |
Om den fullständiga sökvägen inte innehåller någon komponent (till exempel ett filnamn) _splitpath tilldelar du tomma strängar till motsvarande buffertar.
Du kan skicka NULL till _splitpath för alla andra parametrar än path vad du inte behöver.
Om path är NULLanropas den ogiltiga parameterhanteraren enligt beskrivningen i Parameterverifiering. Om körningen tillåts fortsätta errno anges till EINVAL.
Kravspecifikation
| Rutin | Obligatoriskt huvud |
|---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> eller <wchar.h> |
Mer kompatibilitetsinformation finns i Kompatibilitet.
Exempel
Se exemplet för _makepath.
Se även
Filhantering
_fullpath, _wfullpath
_getmbcp
_makepath, _wmakepath
_setmbcp
_splitpath_s, _wsplitpath_s