_splitpath, _wsplitpath
Suddividere un nome del percorso nei suoi componenti. Sono disponibili versioni più sicure di queste funzioni., vedere _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
);
Parametri
path
Percorso completodrive
Lettera di unità, seguita da un segno di due punti (:). È possibile passare NULL per tale parametro se non è necessaria la lettera di unità.dir
Percorso di directory, inclusa la barra finale. Possono essere utilizzate le barre ( / ), le barre rovesciate ( \ ), oppure entrambe. È possibile passare NULL per tale parametro se non è necessario il percorso della directory.fname
Nome del file di base (nessuna estensione). È possibile passare NULL per tale parametro se non è necessario il nome del file.ext
Estensione del nome del file, incluso il punto iniziale (.). È possibile passare NULL per tale parametro se non è necessaria l'estensione del nome del file.
Note
La funzione _splitpath suddivide un percorso nelle quattro componenti. La funzione _splitpath gestisce automaticamente gli handle della stringa con caratteri multibyte in base alle proprie esigenze, riconoscendo le sequenze di caratteri multibyte in base alla tabella codici multibyte attualmente in uso. _wsplitpath è una versione a caratteri "wide" di _splitpath. Gli argomenti per _wsplitpath sono stringhe a caratteri "wide". Altrimenti queste funzioni si comportano in modo identico.
Nota sulla sicurezza Queste funzioni possono incorrere in un potenziale rischio di sovraccarico del buffer. Problemi di sovraccarico del buffer sono un metodo frequente di attacco al sistema, con conseguente elevazione dei privilegi non autorizzata. Per ulteriori informazioni, vedere Evitare sovraccarichi del buffer. Versioni più sicure di queste funzioni sono disponibili; vedere _splitpath_s, _wsplitpath_s.
Mapping di routine di testo generico
Routine TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Ogni componente del percorso completo viene archiviata in un buffer distinto; le costanti di manifesto _MAX_DRIVE, _MAX_DIR, _MAX_FNAME e _MAX_EXT (definite in STDLIB.H) specificano la dimensione massima per ogni componente del file. Componenti di file più grandi delle costanti di manifesto corrispondenti causano danni all'heap.
È necessario che ogni buffer abbia la stessa dimensione della costante di manifesto corrispondente per evitare un potenziale sovraccarico del buffer.
Nella tabella seguente sono elencati i valori delle costanti di manifesto.
Nome |
Valore |
---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
256 |
_MAX_FNAME |
256 |
_MAX_EXT |
256 |
Se il percorso completo non contiene un componente (ad esempio, un nome di file), _splitpath assegna stringhe vuote ai buffer corrispondenti.
È possibile passare NULL a _splitpath per qualsiasi parametro non necessario diverso da path .
Se path è NULL, viene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno viene impostato su EINVAL e la funzione restituisce EINVAL.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> o <wchar.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.
Esempio
Vedere l'esempio di _makepath.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.