_splitpath
, _wsplitpath
Suddividere un percorso in componenti. Per versioni più sicure di queste funzioni sono disponibili, vedere _splitpath_s
, _wsplitpath_s
.
Sintassi
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 due punti (:). Se non è necessaria la lettera di unità, è possibile passare NULL
per questo parametro.
dir
Percorso di directory, inclusa la barra finale. È possibile usare barre ( /
), barre rovesciate ( \
) o entrambe. Passare NULL
per questo parametro se non è necessario il percorso della directory.
fname
Nome di file di base (senza estensione). Passare NULL
per questo parametro se non è necessario il nome file.
ext
Estensione del nome di file, incluso il punto iniziale (.
). Passare NULL
per questo parametro se non è necessaria l'estensione del nome file.
Osservazioni:
La funzione _splitpath
suddivide un percorso nei suoi quattro componenti. _splitpath
gestisce automaticamente gli argomenti stringa di caratteri multibyte in base alle 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". A parte ciò, queste funzioni si comportano in modo identico.
Nota sulla sicurezza Queste funzioni sono soggette al sovraccarico del buffer. I problemi di sovraccarico del buffer sono usati spesso come metodo di attacco di sistema e provocano un'elevazione dei privilegi non autorizzata. Per altre informazioni, vedere Evitare sovraccarichi del buffer. Sono disponibili versioni più sicure di queste funzioni; vedere _splitpath_s
, _wsplitpath_s
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di routine di testo generico
TCHAR.H routine |
_UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Ogni componente del percorso completo viene archiviato in un buffer separato; le costanti _MAX_DRIVE
manifesto , _MAX_DIR
, _MAX_FNAME
e _MAX_EXT
(definite in STDLIB.H
) specificano le dimensioni massime per ogni componente di file. I componenti del file più grandi delle costanti manifeste corrispondenti causano il danneggiamento dell'heap.
Ogni buffer deve essere di dimensioni pari alla costante manifesta corrispondente per evitare potenziali sovraccarichi del buffer.
La tabella seguente elenca i valori delle costanti manifeste.
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 file, _splitpath
assegna stringhe vuote ai buffer corrispondenti.
È possibile passare NULL
a _splitpath
per qualsiasi parametro diverso da path
quello non necessario.
Se path
è NULL
, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno
viene impostato su EINVAL
.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> oppure <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
Vedere l'esempio per _makepath
.
Vedi anche
Gestione dei file
_fullpath
, _wfullpath
_getmbcp
_makepath
, _wmakepath
_setmbcp
_splitpath_s
, _wsplitpath_s