_splitpath, _wsplitpath

Divisez un nom de chemin d'accès dans les composants.Plus les versions 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 d'un signe 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 du répertoire, y compris la barre oblique finale.Les barres obliques ( / ), les barres obliques inverses ( \ ), ou elles peuvent être utilisées.Vous pouvez passer NULL pour ce paramètre si vous n'avez pas besoin du chemin d'accès au répertoire.

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

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

Notes

la fonction d' _splitpath divise un chemin d'accès dans ses quatre composants._splitpath gère automatiquement les arguments de chaîne de caractères multioctets comme approprié, l'identification des séquences de caractères multioctets d'après la page de codes multioctets en cours de utilisation._wsplitpath est une version à caractère élargi d' _splitpath; les arguments à _wsplitpath sont des chaînes à caractères larges.Ces fonctions se comportent de sinon.

La remarque sur la 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 de système, ce qui entraînerait une élévation de privilège injustifiée.Pour plus d'informations, consultez Solutions contre les dépassements de mémoire tampon.plus les versions sécurisées de ces fonctions sont disponibles ; consultez _splitpath_s, _wsplitpath_s.

mappages de routines de texte générique

routine de TCHAR.H

_MBCS & de _UNICODE non défini

_MBCS défini

_UNICODE défini

_tsplitpath

_splitpath

_splitpath

_wsplitpath

Chaque composant du chemin d'accès complet est stocké dans une mémoire tampon distincte ; les constantes manifestes _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, et _MAX_EXT (défini dans STDLIB.H) spécifiez la taille maximale pour chaque composant de fichier.Les composants de fichier qui sont plus importants que les constantes manifestes correspondantes provoquent l'altération du tas.

Chaque mémoire tampon doit être le plus grande que sa constante de manifeste correspondante pour éviter un dépassement de mémoire tampon potentiel.

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

Nom

Valeur

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_MAX_EXT

256

Si le chemin d'accès complet ne contient pas de composant (par exemple, un nom de fichier), _splitpath assigne des chaînes vides aux mémoires tampons sources correspondantes.

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

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

Configuration requise

routine

en-tête requis

_splitpath

<stdlib.h>

_wsplitpath

<stdlib.h> ou <wchar.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

Consultez l'exemple pour _makepath.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Voir aussi

Référence

Gestion de fichiers

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp

_splitpath_s, _wsplitpath_s