Freigeben über


_splitpath, _wsplitpath

Unterteilen Sie einen Pfadnamen in Komponenten.Sicherere Versionen dieser Funktionen sind, finden _splitpath_s, _wsplitpath_sverfügbar.

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 Sie nicht den Laufwerkbuchstaben erforderlich sind.

  • dir
    Verzeichnispfad, einschließlich nachgestellten Schrägstrich.Schrägstriche ( / ), umgekehrte Schrägstriche ( \ ) oder beides verwendet werden kann.Sie können NULL für diesen Parameter übergeben, wenn Sie nicht den Verzeichnispfad erfordern.

  • fname
    Niedriger Dateiname (keine Erweiterung).Sie können NULL für diesen Parameter übergeben, wenn Sie nicht den Dateinamen erfordern.

  • 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 führt einen Pfad in seiner vier Komponenten.Mehrbyte-Zeichenfolgen-Argumente und bei Bedarf automatisch behandelt**_splitpath** derzeit verwendeten erkennt Mehrbytezeichen sequenzen entsprechend der Mehrbyte-Codepage._wsplitpath ist eine Breitzeichen-Version von _splitpath. _wsplitpath sind die Argumente für Zeichenfolgen mit Breitzeichen.Diese Funktionen verhalten sich ansonsten unterscheiden.

Sicherheitshinweis diese Features verursachen eine potenzielle Bedrohung, die durch ein Pufferüberlauf Problem bewerkstelligt wird.Pufferüberlauf eine häufige Probleme sind, angriffs Methode des Systems führt zu einer unbefugten Höhenwinkel des Berechtigung.Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.Sicherere Versionen dieser Funktionen sind verfügbar. Weitere Informationen finden Sie unter _splitpath_s, _wsplitpath_s.

Zuweisung generischer Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert

_MBCS definieren

_UNICODE definiert

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Jede Komponente des vollständigen Pfads wird in einem separaten Puffer gespeichert. _MAX_DRIVEden Manifesten, _MAX_DIR, Konstanten und _MAX_FNAME_MAX_EXT (definiert in STDLIB.H) Geben Sie die maximale Größe für jede Komponente für die Datei an.Datei Komponenten, die größer sind als die entsprechenden Manifesten Konstanten beschädigung Heap verursachen.

Jeder Puffer muss z. B. seine entsprechende Manifeste Konstanten so groß sein, potenziellen Pufferüberlauf zu vermeiden.

In der folgenden Tabelle sind die Werte von Manifesten Konstanten auf.

Name

Wert

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

Wenn der vollständige Pfad keine Komponente (z. B. ein Dateiname) enthält, weist _splitpath leere Zeichenfolgen zu den entsprechenden Puffer zu.

Sie können NULL zu _splitpath für jeden Parameter außer pathführen, die Sie nicht benötigen.

Wenn pathNULLungültige Parameter ist, wird der Ereignishandler aufgerufen, wie in Parametervalidierungbeschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, wird errno zu EINVAL festgelegt, und die Funktion gibt EINVALzurück.

Anforderungen

Routine

Erforderlicher Header

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> oder <wchar.h>

Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.

Beispiel

Weitere Informationen finden Sie im Beispiel für _makepath.

.NET Framework-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Siehe auch

Referenz

Datei-Behandlung

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s