_makepath, _wmakepath

créez un nom de chemin d'accès des composants.plus les versions sécurisées de ces fonctions sont disponibles ; consultez _makepath_s, _wmakepath_s.

void _makepath(
   char *path,
   const char *drive,
   const char *dir,
   const char *fname,
   const char *ext 
);
void _wmakepath(
   wchar_t *path,
   const wchar_t *drive,
   const wchar_t *dir,
   const wchar_t *fname,
   const wchar_t *ext 
);

Paramètres

  • path
    mémoire tampon de chemin complet.

  • drive
    Contient un caractère alphabétique (A, B, etc.) correspondant au lecteur approprié et à un deux-points de fin facultatif._makepath insère les deux-points automatiquement dans le chemin d'accès composite s'il manque.Si drive est NULL ou pointe vers une chaîne vide, aucune lettre de lecteur n'apparaît dans la chaîne composée d' path .

  • dir
    Contient le chemin d'accès des répertoires, sans inclure l'indicateur d'un lecteur ou le nom de fichier réel.La barre oblique finale est facultative, et une barre oblique (/) ou une barre oblique inverse (\) ou les deux peuvent être utilisées dans un seul argument d' dir .Si aucune barre oblique finale (l'/ou \) n'est spécifiée, il est inséré automatiquement.Si dir est NULL ou pointe vers une chaîne vide, aucun chemin d'accès n'est inséré dans la chaîne composée d' path .

  • fname
    ne contient le nom de fichier de base sans aucune extension de nom de fichier.Si fname est NULL ou pointe vers une chaîne vide, aucun nom de fichier n'est inséré dans la chaîne composée d' path .

  • ext
    Contient l'extension de nom de fichier réelle, avec ou sans une principale point (.)._makepath insère la période automatiquement s'il ne s'affiche pas dans ext.Si ext est NULL ou pointe vers une chaîne vide, aucune extension n'est insérée dans la chaîne composée d' path .

Notes

La fonction d' _makepath crée une chaîne composée de chemin d'accès de différents composants, en enregistrant le résultat dans path.path peut inclure une lettre de lecteur, un chemin d'accès du répertoire, un nom de fichier, et une extension du nom de fichier._wmakepath est une version à caractère élargi d' _makepath; les arguments à _wmakepath sont des chaînes à caractères larges._wmakepath et _makepath se comportent de sinon.

Utilisation de note de sécuritéune chaîne terminée par le caractère NULL.Pour éviter un dépassement de mémoire tampon, la chaîne terminée par le caractère NULL ne doit pas dépasser la taille de la mémoire tampon d' path ._makepath ne garantit pas que la longueur de la chaîne composée de chemin d'accès ne dépasse pas _MAX_PATH.Pour plus d'informations, consultez Solutions contre les dépassements de mémoire tampon.

mappages de routines de texte générique

routine de Tchar.h

_UNICODE et _MBCS non définis

_MBCS défini

_UNICODE défini

_tmakepath

_makepath

_makepath

_wmakepath

L'argument d' path doit pointer vers une mémoire tampon vide suffisamment grande pour contenir le chemin d'accès complet.path composite ne doit pas dépasser grand que la constante d' _MAX_PATH , définie par Stdlib.h.

si le chemin d'accès est NULL, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.en outre, errno est défini à EINVAL.il permet des valeurs d'NULL pour tous les autres paramètres.

Configuration requise

routine

en-tête requis

_makepath

<stdlib.h>

_wmakepath

<stdlib.h> ou <wchar.h>

Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.

Exemple

// crt_makepath.c
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char path_buffer[_MAX_PATH];
   char drive[_MAX_DRIVE];
   char dir[_MAX_DIR];
   char fname[_MAX_FNAME];
   char ext[_MAX_EXT];

   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); // C4996
   // Note: _makepath is deprecated; consider using _makepath_s instead
   printf( "Path created with _makepath: %s\n\n", path_buffer );
   _splitpath( path_buffer, drive, dir, fname, ext ); // C4996
   // Note: _splitpath is deprecated; consider using _splitpath_s instead
   printf( "Path extracted with _splitpath:\n" );
   printf( "  Drive: %s\n", drive );
   printf( "  Dir: %s\n", dir );
   printf( "  Filename: %s\n", fname );
   printf( "  Ext: %s\n", ext );
}
  

Équivalent .NET Framework

System : : E/S : : fichier : : Create

Voir aussi

Référence

Gestion de fichiers

_fullpath, _wfullpath

_splitpath, _wsplitpath

_makepath_s, _wmakepath_s