_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é.