_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 maxLength
ist), 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 NULL
der 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 _makepath
dazu 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_dbg
verwalten.
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 free
von ) 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