Delen via


_splitpath, _wsplitpath

Een pad opsplitsen in onderdelen. Voor veiligere versies van deze functies zijn beschikbaar, zie _splitpath_s, . _wsplitpath_s

Syntaxis

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

Parameterwaarden

path
Volledig pad.

drive
Stationsletter, gevolgd door een dubbele punt (:). U kunt voor deze parameter doorgeven NULL als u de stationsletter niet nodig hebt.

dir
Mappad, inclusief afsluitende slash. Slashes (/), backslashes (\) of beide kunnen worden gebruikt. Geef NULL deze parameter door als u het mappad niet nodig hebt.

fname
Basisbestandsbestand (geen extensie). Geef deze parameter door NULL als u de bestandsnaam niet nodig hebt.

ext
Bestandsnaamextensie, inclusief voorloopperiode (.). Geef deze parameter door NULL als u de bestandsnaamextensie niet nodig hebt.

Opmerkingen

De _splitpath functie breekt een pad in de vier onderdelen. _splitpath verwerkt automatisch tekenreeksargumenten met meerderebytetekens, waarbij meerderebytetekenreeksen worden herkend op basis van de codepagina met meerderebyte die momenteel in gebruik is. _wsplitpath is een brede versie van _splitpath; de argumenten die _wsplitpath tekenreeksen breed zijn. Deze functies gedragen zich op dezelfde manier als anders.

Beveiligingsnotitie Deze functies zijn onderhevig aan bufferoverschrijding. Problemen met bufferoverschrijding zijn een frequente methode van systeemaanvallen, wat resulteert in een onwarrante uitbreiding van bevoegdheden. Zie Bufferoverschrijdingen voorkomen voor meer informatie. Er zijn veiligere versies van deze functies beschikbaar; zie _splitpath_s, _wsplitpath_s.

De globale status van deze functie is standaard gericht op de toepassing. Als u dit gedrag wilt wijzigen, raadpleegt u de globale status in de CRT.

Algemene routinetoewijzingen voor tekst

TCHAR.H routine _UNICODE en _MBCS niet gedefinieerd _MBCS Gedefinieerd _UNICODE Gedefinieerd
_tsplitpath _splitpath _splitpath _wsplitpath

Elk onderdeel van het volledige pad wordt opgeslagen in een afzonderlijke buffer; de manifestconstanten _MAX_DRIVE, _MAX_DIR, _MAX_FNAMEen _MAX_EXT (gedefinieerd in STDLIB.H) geven de maximumgrootte voor elk bestandsonderdeel op. Bestandsonderdelen die groter zijn dan de bijbehorende manifestconstanten veroorzaken heap-beschadiging.

Elke buffer moet zo groot zijn als de bijbehorende manifestconstante om potentiƫle bufferoverschrijding te voorkomen.

De volgende tabel bevat de waarden van de manifestconstanten.

Naam Waarde
_MAX_DRIVE 3
_MAX_DIR 256
_MAX_FNAME 256
_MAX_EXT 256

Als het volledige pad geen onderdeel bevat (bijvoorbeeld een bestandsnaam), _splitpath wijst u lege tekenreeksen toe aan de bijbehorende buffers.

U kunt doorgeven NULL aan _splitpath een andere parameter dan path die u niet nodig hebt.

Als path is NULL, wordt de ongeldige parameterhandler aangeroepen, zoals beschreven in parametervalidatie. Als de uitvoering mag worden voortgezet, errno is ingesteld op EINVAL.

Behoeften

Routine Vereiste header
_splitpath <stdlib.h>
_wsplitpath <stdlib.h> of <wchar.h>

Zie Compatibiliteit voor meer compatibiliteitsinformatie.

Voorbeeld

Zie het voorbeeld voor _makepath.

Zie ook

Bestandsafhandeling
_fullpath, _wfullpath
_getmbcp
_makepath, _wmakepath
_setmbcp
_splitpath_s, _wsplitpath_s