Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Unterteilen Sie einen Pfad in Komponenten. Sicherere Versionen dieser Funktionen sind verfügbar, siehe _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
);
Parameter
path
Vollständiger Pfad
drive
Laufwerkbuchstaben gefolgt von einem Doppelpunkt (:). Sie können diesen Parameter übergeben NULL , wenn Sie den Laufwerkbuchstaben nicht benötigen.
dir
Verzeichnispfad, einschl. nachstehender Schrägstrich. Schrägstriche (/), umgekehrte Schrägstriche (\) oder beides können verwendet werden. Übergeben Sie NULL diesen Parameter, wenn Sie den Verzeichnispfad nicht benötigen.
fname
Basisdateiname (ohne Erweiterung). Übergeben Sie NULL diesen Parameter, wenn Sie den Dateinamen nicht benötigen.
ext
Dateierweiterung, einschl. führender Punkt (.). Übergeben Sie NULL diesen Parameter, wenn Sie die Dateinamenerweiterung nicht benötigen.
Hinweise
Die _splitpath-Funktion teilt einen Pfad in seine vier Komponenten auf.
_splitpath behandelt Multibyte-Zeichenfolgenargumente automatisch richtig. Die Erkennung von Multibyte-Zeichenfolgen erfolgt auf der Grundlage der aktuell verwendeten Multibyte-Codeseite.
_wsplitpath ist eine Breitzeichenversion von _splitpath. Die Argumente für _wsplitpath sind Zeichenfolgen mit Breitzeichen. Anderenfalls verhalten sich diese Funktionen identisch.
Sicherheitshinweis : Diese Funktionen unterliegen dem Pufferüberlauf. Pufferüberlaufprobleme werden häufig bei Systemangriffen eingesetzt, da sie zu einer unbefugten Ausweitung der Berechtigungen führen. Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter _splitpath_s, _wsplitpath_s.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
TCHAR.H-Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
|---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Jede Komponente des vollständigen Pfads wird in einem separaten Puffer gespeichert. die Manifestkonstanten _MAX_DRIVE, _MAX_DIR, , _MAX_FNAMEund _MAX_EXT (definiert in STDLIB.H) geben die maximale Größe für jede Dateikomponente an. Dateikomponenten, die größer als die entsprechenden Manifestkonstanten sind, können zur Beschädigung des Heaps führen.
Jeder Puffer muss so groß wie die entsprechende Manifestkonstante sein, damit ein potenzieller Pufferüberlauf vermieden werden kann.
In der folgenden Tabelle werden die Werte der Manifestkonstanten aufgelistet.
| Name | Wert |
|---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
256 |
_MAX_FNAME |
256 |
_MAX_EXT |
256 |
Wenn der vollständige Pfad keine Komponente enthält (z. B. einen Dateinamen), _splitpath werden den entsprechenden Puffern leere Zeichenfolgen zugewiesen.
Sie können für einen anderen NULL Parameter als den nicht benötigten Parameter übergeben _splitpathpath werden.
Wenn path den Wert NULLannimmt, wird der Handler für ungültige Parameter aufgerufen, wie in Parameter Validation. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL festgelegt.
Anforderungen
| Routine | Erforderlicher Header |
|---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
Ein Beispiel hierfür finden Sie unter _makepath.
Siehe auch
Dateibehandlung
_fullpath, _wfullpath
_getmbcp
_makepath, _wmakepath
_setmbcp
_splitpath_s, _wsplitpath_s