_splitpath, _wsplitpath

 

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Divise un nom de chemin d'accès en ses composants élémentaires. Des versions plus sécurisées de ces fonctions sont disponibles; consultez _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   
);  

Paramètres

path
Chemin d'accès complet.

drive
Lettre de lecteur, suivi de deux-points (:). Vous pouvez passer NULL pour ce paramètre si vous n'avez pas besoin de la lettre de lecteur.

dir
Chemin d'accès au répertoire, invluant la barre oblique finale. Des barres obliques ( /), les barres obliques inverses ( \ ), ou les deux peuvent être utilisées. Vous pouvez passer NULL pour ce paramètre si vous n'avez pas besoin du chemin d'accès.

fname
Nom du fichier de base (aucune extension). Vous pouvez renvoyer NULL pour ce paramètre si vous n'avez pas besoin du nom du fichier.

ext
Extension du nom de fichier, y compris le principal point (.). Vous pouvez passer NULL pour ce paramètre si vous n'avez pas besoin de l'extension du nom de fichier.

La fonction _splitpathdivise un chemin d'accès par ses quatre composants. _splitpath gère automatiquement des arguments de chaîne de caractères multi-octets comme appropriés, en identifiant des séquences de caractères multi-octets d'après la page de codes multioctets en cours d'utilisation. _wsplitpath est une version à caractères larges de _splitpath ; les arguments de _wsplitpath sont des chaînes à caractères larges. Ces fonctions se comportent sinon de façon identique.

Note de sécurité Ces fonctions entraînent un risque potentiel provoqué par un dépassement de mémoire tampon. Les dépassements de mémoire tampon sont une méthode fréquente d'attaque du système, ce qui provoque une élévation des privilèges injustifiée. Pour plus d'informations, consultez Solutions contre les dépassements de mémoire tampon. Des versions plus sécurisées de ces fonctionnalités sont disponibles ; voir le _splitpath_s, _wsplitpath_s.

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE & _MBCS non définis_MBCS défini_UNICODE défini
_tsplitpath_splitpath_splitpath_wsplitpath

Chaque composant du chemin d'accès complet est stockée dans une mémoire tampon distincte ; les constantes explicites _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, et _MAX_EXT(définies dans STDLIB.H) spécifient la taille maximale autorisée pour chaque composant de fichier. Les composants des fichiers qui sont de dimensions supérieures aux constantes explicites correspondantes engendrent la corruption des données des segments de mémoires.

Chaque mémoire tampon doit aussis grande que la constante explicite correspondante pour éviter un dépassement de mémoire tampon potentiel.

Le tableau suivant répertorie les valeurs des constantes explicites.

NomValeur
_MAX_DRIVE3
_MAX_DIR256
_MAX_FNAME256
_MAX_EXT256

Si le chemin complet ne contient aucun composant (par exemple, un nom de fichier), _splitpath affecte une chaîne vide à la mémoire tampon correspondante.

Vous pouvez passer NULL à _splitpath pour un paramètre autre que path lequel vous n'avez pas besoin.

Si path est NULL, le gestionnaire de paramètres non valides est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, errno est défini comme EINVAL et la fonction retourne EINVAL.

RoutineEn-tête requis
_splitpath<stdlib.h>
_wsplitpath<stdlib.h> ou <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Consultez l'exemple sur _makepath.

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Gestion de fichiers
_fullpath, _wfullpath
_getmbcp
_makepath, _wmakepath
_setmbcp
_splitpath_s, _wsplitpath_s

Afficher: