_splitpath, _wsplitpath
Unterbrechen Sie einen Pfadnamen in Komponenten. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter _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
);
Parameter
path
Vollständiger Pfad.drive
Laufwerkbuchstabe, gefolgt von einem Doppelpunkt (:). Sie können NULL für diesen Parameter übergeben, wenn der Laufwerkbuchstaben benötigen.dir
Verzeichnispfad, z nachgestellten Schrägstrich. Schrägstrich ( / ), umgekehrte Schrägstriche ( \ ) oder beide verwendet werden. Sie können NULL für diesen Parameter übergeben, wenn Sie den Verzeichnispfad benötigen.fname
Geringer Dateiname (ohne Erweiterung). Sie können NULL für diesen Parameter übergeben, wenn der Dateiname benötigen.ext
Dateinamenerweiterung, einschließlich führenden Punkt (.). Sie können NULL für diesen Parameter übergeben, wenn Sie nicht die Dateinamenerweiterung benötigen.
Hinweise
Die _splitpath-Funktion wird ein Pfad in seine vier Komponenten. _splitpath behandelt automatisch Mehrbyte-Zeichenfolgen-Argumente entsprechend und derzeit erkennt Mehrbytezeichensequenzen entsprechend der Mehrbyte-Codepage. _wsplitpath ist eine Breitzeichenversion von _splitpath. Die Argumente für _wsplitpath sind Zeichenfolgen mit Breitzeichen. Anderenfalls verhalten sich diese Funktionen identisch.
Sicherheitshinweis Diese Funktionen stellen eine mögliche Bedrohung aufgrund eines Pufferüberlaufproblems dar. 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; finden Sie unter _splitpath_s, _wsplitpath_s.
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _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_FNAME und _MAX_EXT (definiert in STDLIB.H) Geben Sie die maximale Größe für jede Dateikomponente an. Erfassen Sie Komponenten, die größer sind, als die entsprechende Konstantenursachen-Heapbeschädigung Manifest.
Jeder Puffer muss wie die zugehörige Manifest Konstanten so groß sein, potenziellen Pufferüberlauf zu vermeiden.
In der folgenden Tabelle sind die Werte der Manifestkonstanten auf.
Name |
Wert |
---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
256 |
_MAX_FNAME |
256 |
_MAX_EXT |
256 |
Wenn der vollständige Pfad keine Komponente, (beispielsweise ein Dateiname) enthält, weist _splitpath leere Zeichenfolgen den entsprechenden Puffer zu.
Sie können NULL auf _splitpath für jeden Parameter unterschiedlich path übergeben, das Sie nicht benötigen.
Wenn path den Wert NULL annimmt, wird der ungültige Parameterhandler, wie in Parametervalidierung beschrieben, aufgerufen. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL gesetzt, und die Funktion gibt EINVAL zurück.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> oder <wchar.h> |
Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
Beispiel
Im Beispiel für _makepath.
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.