Condividi tramite


_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_DRIVEmanifesto , _MAX_DIR, _MAX_FNAMEe _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.

Name 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> o <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