_splitpath, _wsplitpath
Interrompere un percorso in componenti.Più versioni sicure di queste funzioni sono disponibili, 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 completo.drive
Lettera di unità, seguita da un segno di due punti (:).È possibile passare NULL per questo parametro su se non è necessaria la lettera di unità.dir
Percorso di directory, inclusi la barra finale.barre ( / ), barre rovesciate ( \ ), o entrambi può essere utilizzato.È possibile passare NULL per questo parametro su se non è necessario alcun percorso della directory.fname
Nome file di base (alcuna estensione).È possibile passare NULL per questo parametro su se non è necessario alcun nome file.ext
Estensione del nome file, inclusi il punto iniziale (.).È possibile passare NULL per questo parametro su se non è necessario disporre dell'estensione del nome file.
Note
_splitpath la funzione consente di interrompere un percorso delle quattro componenti._splitpath gestisce automaticamente gli argomenti della stringa con caratteri multibyte in base alle proprie esigenze, riconoscere le sequenze di caratteri multibyte in base alla tabella codici multibyte in uso._wsplitpath è una versione a caratteri estesi di _splitpath; gli argomenti a _wsplitpath sono le stringhe di caratteri estesi.Queste funzioni si comportano in modo identico in caso contrario.
Nota sulla sicurezza Queste funzioni comportano un rischio potenziale determinata da un problema di sovraccarico del buffer.I problemi di sovraccarico del buffer è un frequente metodo di attacco del sistema, con conseguente elevation of privilege ingiustificata.Per ulteriori informazioni, vedere Evitare i sovraccarichi del buffer.Più versioni sicure di queste funzioni sono disponibili, vedere _splitpath_s, _wsplitpath_s.
Mapping di routine a testo generico
routine di TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Ogni parte del percorso completo viene archiviata in un buffer distinto; le costanti manifesto _MAX_DRIVE, _MAX_DIR, _MAX_FNAMEe _MAX_EXT (definito da STDLIB.H) specificare la dimensione massima consentita per ogni componente del file.Archiviare i componenti maggiori di danneggiamento manifesto corrispondente dell'heap di causa di costanti.
Ciascun buffer è necessario avere le stesse dimensioni della costante del manifesto corrispondente evitare il sovraccarico del buffer.
Nella tabella seguente sono elencati i valori delle costanti 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 file), _splitpath l'assegnazione delle stringhe vuote nel buffer corrispondenti.
È possibile passare NULL in _splitpath per qualsiasi parametro diverso da pathnon è necessaria.
se path viene NULL, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, errno è impostato su EINVAL e restituisce un valore di funzione EINVAL.
Requisiti
routine |
Intestazione di associazione |
---|---|
_splitpath |
<definito> |
_wsplitpath |
<definito> o <wchar.h> |
per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.
Esempio
Vedere l'esempio relativo a _makepath.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.