_fullpath, _wfullpath

Erstellt ein absoluter oder einen vollständigen Pfadnamen für den angegebenen relativen Pfadnamen.

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 das Absolute oder der vollständige Pfadname oder NULL enthält.

  • relPath
    Relativer Pfadname.

  • maxLength
    Maximale Länge des absoluten Pfadnamenpuffers (absPath). Diese Länge ist in Bytes für _fullpath in den Breitzeichen (wchar_t) für _wfullpath.

Rückgabewert

Jede dieser Funktionen gibt einen Zeiger auf einen Puffer zurück, der den absoluten Pfadnamen (absPath) enthält. Wenn es einen Fehler (beispielsweise, wenn der Wert, der an relPath übergeben wird, einen Laufwerkbuchstaben enthält, der NULL ist oder nicht gefunden werden kann, oder wenn die Länge des erstellten absoluten Pfadnamens (absPath), ist größer als maxLength), gibt die Funktion NULL zurückgibt.

Hinweise

Die _fullpath-Funktion erweitert den relativen Pfadnamen in relPath auf den vollqualifizierten oder absolute Pfad und speichert diesen Namen in absPath*.* Wenn absPath NULL ist, wird malloc verwendet, um einem ausreichenden Puffer der Länge zu, um den Pfadnamen aufzunehmen. Es liegt in der Verantwortung des Aufrufers, diesem Puffer freizugeben. Ein relativer Pfadname gibt einen Pfad zu einem anderen Speicherort von der aktuellen Position an (wie zum aktuellen Arbeitsverzeichnis: "."). Ein absoluter Pfadname ist die Erweiterung eines relativen Pfadnamens, der den gesamten Pfad angibt, der erforderlich ist, um den gewünschten Speicherort dem Stamm des Dateisystems zu erreichen. Anders als _makepath kann _fullpath verwendet werden, um den absoluten Pfadnamen für relative Pfade (relPath) erhalten können vorliegen ". /" oder ". /" in ihren Namen.

Um beispielsweise C-Laufzeit-Routinen zu verwenden, muss die Anwendung die Headerdateien enthalten, die die Deklarationen für die Routinen enthalten. Jede Headerdateieinschließungsanweisung verweist auf den Speicherort der Datei in einer relativen Weise (aus dem Arbeitsverzeichnis der Anwendung):

#include <stdlib.h>

als der absolute Pfad kann (tatsächliche des Dateisystems der Datei ist):

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

_fullpath behandelt automatisch Mehrbyte-Zeichenfolgen-Argumente entsprechend und derzeit erkennt Mehrbytezeichensequenzen entsprechend der Mehrbyte-Codepage. _wfullpath ist eine Breitzeichen-Version von _fullpath; die Zeichenfolgenargumente für _wfullpath sind Zeichenfolgen mit Breitzeichen. _wfullpath und _fullpath identisch verhalten sich, dass _wfullpath nicht behandelt Mehrbyte-Zeichenfolgen.

Wenn _DEBUG und _CRTDBG_MAP_ALLOC beide definiert werden, werden Aufrufe von _fullpath und _wfullpath durch Aufrufe von _fullpath_dbg und _wfullpath_dbg ersetzt, um das Debuggen von Speicherbelegungen zuzulassen. Weitere Informationen finden Sie unter _fullpath_dbg, _wfullpath_dbg.

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

Zuordnung generischer Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tfullpath

_fullpath

_fullpath

_wfullpath

Wenn der Puffer absPath eine NULL ist, wird _fullpathmalloc auf, um einem Puffer reserviert und ignoriert das maxLength-Argument. Es liegt in der Verantwortung des Aufrufers, diesem Puffer nach Bedarf freizugeben (mit frei). Wenn relPath das Argument einem 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 in der Einführung.

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" );
}
  

.NET Framework-Entsprechung

System::IO::File::Create

Siehe auch

Referenz

Dateibehandlung

_getcwd, _wgetcwd

_getdcwd, _wgetdcwd

_makepath, _wmakepath

_splitpath, _wsplitpath