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