Freigeben über


_fullpath, _wfullpath

Erstellt einen absoluten oder vollständigen Pfadnamen für den angegebenen relativen Pfadnamen

Syntax

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

Parameter

absPath
Zeiger auf einen Puffer, der den absoluten oder vollständigen Pfadnamen enthält, oder NULL.

relPath
Relativer Pfadname.

maxLength
Maximale Länge des Puffers des absoluten Pfadnamens (absPath). Die Länge wird für _fullpath in Bytes ausgedrückt, aber für wchar_t in Breitzeichen (_wfullpath).

Rückgabewert

Jede dieser Funktionen gibt einen Zeiger auf einen Puffer zurück, der den absoluten Pfadnamen (absPath) enthält. Wenn ein Fehler vorliegt (z. B. wenn der übergebene relPath Wert einen ungültigen Laufwerkbuchstaben enthält oder nicht gefunden werden kann, oder wenn die Länge des erstellten absoluten Pfadnamens (absPath) größer als maxLengthist), wird die Funktion zurückgegeben NULL.

Hinweise

Die _fullpath Funktion erweitert den relativen Pfadnamen in relPath seinen vollqualifizierten oder absoluten Pfad und speichert diesen Namen in absPath. Ist absPath dies NULLder Grund, malloc wird verwendet, um einen Puffer mit ausreichender Länge zuzuweisen, um den Pfadnamen zu speichern. Es liegt in der Verantwortung des Aufrufers, diesen Puffer frei zu geben. Ein relativer Pfadname gibt einen Pfad zu einem anderen Speicherort vom aktuellen Speicherort an (z. B. das aktuelle Arbeitsverzeichnis: .). Ein absoluter Pfadname ist die Erweiterung eines relativen Pfadnamens, der den gesamten Pfad ausdrückt, der dafür erforderlich ist, um die gewünschte Position aus dem Stammverzeichnis des Dateisystems zu erreichen. _fullpath Im Gegensatz _makepathdazu können Sie zum Abrufen des absoluten Pfadnamens für relative Pfade (relPath) verwendet werden, die oder in deren Namen enthalten ./ ../ sind.

Um beispielsweise C-Laufzeitroutinen verwenden zu können, muss die Anwendung die Headerdateien enthalten, die die Deklarationen für die Routinen enthalten. Jede Headerdateidirektive #include verweist auf den Speicherort der Datei relativ (aus dem Arbeitsverzeichnis der Anwendung):

#include <stdlib.h>

Wenn der absolute Pfad (der tatsächliche Dateisystem-Speicherort) der Datei z.B. wie folgt lautet:

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

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

_fullpath behandelt Multibyte-Zeichenfolgenargumente automatisch richtig. Die Erkennung von Multibyte-Zeichenfolgen erfolgt auf der Grundlage der aktuell verwendeten Multibyte-Codeseite. _wfullpath ist eine Breitzeichenversion von _fullpath. Die Zeichenfolgenargumente für _wfullpath sind Zeichenfolgen mit Breitzeichen. _wfullpath und _fullpath verhalten sich identisch, mit der Ausnahme, dass _wfullpath multibyte-Zeichenfolgen nicht behandelt werden.

If _DEBUG and _CRTDBG_MAP_ALLOC are both defined, calls to _fullpath and are replaced by calls to _fullpath_dbg and _wfullpath_dbg_wfullpath , to allow you to debug memory allocations. Weitere Informationen finden Sie unter _fullpath_dbg, _wfullpath_dbgverwalten.

Diese Funktion ruft den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben, wenn maxlen er kleiner oder gleich 0 ist. Wenn die weitere Ausführung zugelassen wird, legt diese Funktion errno auf EINVAL fest und gibt NULL zurück.

Mapping generischer Textroutinen

Tchar.h-Routine _UNICODE and _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_tfullpath _fullpath _fullpath _wfullpath

Wenn der absPath Puffer lautet NULL, _fullpath werden Aufrufe malloc zum Zuweisen eines Puffers aufgerufen und das maxLength Argument ignoriert. Es liegt in der Verantwortung des Aufrufers, diesen Puffer (unter Verwendung freevon ) entsprechend zu verlagern. Wenn das relPath-Argument ein Laufwerk angibt, wird das aktuelle Verzeichnis dieses Laufwerks mit dem Pfad kombiniert.

Anforderungen

Funktion Erforderlicher Header
_fullpath <stdlib.h>
_wfullpath <stdlib.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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

Siehe auch

Dateibehandlung
_getcwd, _wgetcwd
_getdcwd, _wgetdcwd
_makepath, _wmakepath
_splitpath, _wsplitpath