Freigeben über


_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.

Siehe auch

Referenz

Dateibehandlung

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s