_fullpath _wfullpath
Vytvoří název zadanou relativní cesta absolutní nebo celou cestu.
char *_fullpath(
char *absPath,
const char *relPath,
size_t maxLength
);
wchar_t *_wfullpath(
wchar_t *absPath,
const wchar_t *relPath,
size_t maxLength
);
Parametry
absPath
Ukazatel do vyrovnávací paměti, absolutní nebo celou cestu obsahující název nebo hodnotu NULL.relPath
Název relativní cesty.maxLength
Maximální délka vyrovnávací paměti název absolutní cesty (absPath).Tato délka je v bajtech pro _fullpath , ale v celé znaky (wchar_t) pro _wfullpath.
Vrácená hodnota
Každá z těchto funkcí vrací ukazatel do vyrovnávací paměti obsahující název absolutní cesty (absPath).Pokud dojde k chybě (například, pokud hodnota předaná relPath obsahuje písmeno jednotky, které není platná nebo nelze nalézt nebo pokud délka názvu vytvořeného absolutní cestu (absPath) je větší než maxLength), vrátí funkce NULL.
Poznámky
_fullpath Rozšiřuje funkce název relativní cesty v relPath jeho plně kvalifikovaný nebo absolutní cestu a ukládá toto jméno absPath*.* Pokud absPath hodnotu NULL, malloc slouží k přidělení vyrovnávací paměti dostatečně dlouhý název cesty.Je odpovědností bez této vyrovnávací paměti volajícího.Relativní cesta Určuje cestu do jiného umístění z aktuálního umístění (například aktuální pracovní adresář: ".").Absolutní cesta je rozšíření název relativní cesty, která uvádí celou cestu, potřebné k dosažení požadovaného umístění z kořenového adresáře systému souborů.Na rozdíl od _makepath, _fullpath lze získat název absolutní cesty relativní cesty (relPath) obsahující ". /"nebo"../ "v jejich názvech.
Chcete-li použít c spuštění rutiny například žádost musí obsahovat záhlaví soubory, které obsahují prohlášení rutiny.Každý soubor záhlaví obsahovat prohlášení odkazy umístění souboru relativní způsobem (z pracovního adresáře aplikace):
#include <stdlib.h>
kdy může být absolutní cestu souboru (skutečné umístění systému souborů):
\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h
_fullpath automaticky zpracovává argumenty řetězec vícebajtových znaků podle potřeby UZNÁVAJÍCE vícebajtové znakové sekvence podle vícebajtové znakové stránky právě používán._wfullpath je verze celého znaku _fullpath; řetězcové argumenty k _wfullpath jsou celý znak řetězce._wfullpath a _fullpath s výjimkou, že se chovají stejně _wfullpath nezpracovává vícebajtové znakové řetězce.
Pokud _DEBUG a _CRTDBG_MAP_ALLOC jsou definovány, volání na _fullpath a _wfullpath nahrazují volání na _fullpath_dbg a _wfullpath_dbg pro ladění přidělení paměti.Další informace naleznete v _fullpath_dbg, _wfullpath_dbg.
Tato funkce vyvolá obsluhu neplatný parametr popsaným v Ověření parametrů, pokud maxlen je menší než 0.Pokud je povoleno spuštění pokračovat, tato funkce nastaví errno na EINVAL a vrátí NULL.
Obecný Text rutinní mapování
Rutina Tchar.h |
_UNICODE a _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tfullpath |
_fullpath |
_fullpath |
_wfullpath |
Pokud absPath vyrovnávací paměť je NULL, _fullpath volání malloc k přidělení vyrovnávací paměti a ignoruje maxLength argument.Je odpovědností volajícího navrátit této vyrovnávací paměti (pomocí bez) podle potřeby.Pokud relPath argument určuje diskové jednotky, kombinace aktuálního adresáře jednotky cestu.
Požadavky
Function |
Požadované záhlaví |
---|---|
_fullpath |
<stdlib.h> |
_wfullpath |
<stdlib.h> nebo <wchar.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
Příklad
// 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" );
}