Partager via


_fullpath, _wfullpath

Créer un nom de chemin absolu ou complet pour le nom de chemin relatif spécifié.

Syntaxe

char *_fullpath(
   char *absPath,
   const char *relPath,
   size_t maxLength
);
wchar_t *_wfullpath(
   wchar_t *absPath,
   const wchar_t *relPath,
   size_t maxLength
);

Paramètres

absPath
Pointeur vers une mémoire tampon contenant le nom de chemin d'accès absolu ou complet, ou NULL.

relPath
Nom de chemin d’accès relatif.

maxLength
Longueur maximale de la mémoire tampon du nom de chemin d'accès absolu (absPath). Cette longueur est représentée en octets pour _fullpath mais en caractères larges (wchar_t) pour _wfullpath.

Valeur retournée

Chacune de ces fonctions retourne un pointeur vers une mémoire tampon contenant le nom de chemin absolu (absPath). S’il existe une erreur (par exemple, si la valeur passée relPath inclut une lettre de lecteur qui n’est pas valide ou introuvable, ou si la longueur du nom de chemin absolu créé (absPath) est supérieure maxLengthà ), la fonction renvoie NULL.

Notes

La _fullpath fonction développe le nom du chemin relatif dans relPath son chemin complet ou absolu et stocke ce nom dans absPath. Si absPath c’est NULLle cas, malloc est utilisé pour allouer une mémoire tampon de longueur suffisante pour contenir le nom du chemin d’accès. Il incombe à l’appelant de libérer cette mémoire tampon. Un nom de chemin relatif spécifie un chemin d’accès à un autre emplacement à partir de l’emplacement actuel (par exemple, le répertoire de travail actuel : .). Un nom de chemin absolu est l’extension d’un nom de chemin relatif qui indique le chemin complet requis pour atteindre l’emplacement souhaité à partir de la racine du système de fichiers. Contrairement _makepathà , _fullpath peut être utilisé pour obtenir le nom absolu du chemin d’accès pour les chemins relatifs (relPath) qui incluent ./ ou ../ dans leurs noms.

Par exemple, pour utiliser les routines du runtime C, l’application doit inclure les fichiers d’en-tête qui contiennent les déclarations pour les routines. Chaque directive de fichier #include d’en-tête fait référence à l’emplacement du fichier de manière relative (à partir du répertoire de travail de l’application) :

#include <stdlib.h>

quand le chemin absolu (emplacement de système de fichiers actuel) du fichier peut être :

\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

_fullpath gère automatiquement les arguments de chaîne de caractères multioctets si nécessaire, en identifiant les séquences de caractères multioctets en fonction de la page de codes multioctets en cours d’utilisation. _wfullpath est une version à caractères larges de _fullpath ; les arguments de chaîne de _wfullpath sont des chaînes à caractères larges. _wfullpath et _fullpath se comportent de la même façon, sauf que _wfullpath cela ne gère pas les chaînes de caractères multioctets.

Si _DEBUG et _CRTDBG_MAP_ALLOC sont tous les deux définis, les appels vers _fullpath et _wfullpath sont remplacés par des appels vers _fullpath_dbg et _wfullpath_dbg, pour vous permettre de déboguer des allocations de mémoire. Pour plus d’informations, consultez _fullpath_dbg, _wfullpath_dbg.

Cette fonction appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres, s’il maxlen est inférieur ou égal à 0. Si l'exécution est autorisée à se poursuivre, cette fonction affecte la valeur errno à EINVAL et retourne NULL.

Mappages de routine de texte générique

Tchar.h Routine _UNICODE and _MBCS non défini _MBCS Défini _UNICODE Défini
_tfullpath _fullpath _fullpath _wfullpath

Si la absPath mémoire tampon est NULL, _fullpath les appels malloc pour allouer une mémoire tampon et ignorent l’argument maxLength . Il incombe à l’appelant de libérer cette mémoire tampon (en utilisant free) selon les besoins. Si l’argument relPath spécifie un lecteur de disque, le répertoire actuel de ce lecteur est combiné avec le chemin.

Spécifications

Fonction En-tête requis
_fullpath <stdlib.h>
_wfullpath <stdlib.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// crt_fullpath.c
// This program demonstrates how _fullpath
// creates a full path from a partial path.

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <direct.h>

void PrintFullPath( char * partialPath )
{
   char full[_MAX_PATH];
   if( _fullpath( full, partialPath, _MAX_PATH ) != NULL )
      printf( "Full path is: %s\n", full );
   else
      printf( "Invalid path\n" );
}

int main( void )
{
   PrintFullPath( "test" );
   PrintFullPath( "\\test" );
   PrintFullPath( "..\\test" );
}
Full path is: C:\Documents and Settings\user\My Documents\test
Full path is: C:\test
Full path is: C:\Documents and Settings\user\test

Voir aussi

Gestion des fichiers
_getcwd, _wgetcwd
_getdcwd, _wgetdcwd
_makepath, _wmakepath
_splitpath, _wsplitpath