Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vytvoří absolutní nebo úplný název cesty pro zadaný relativní název cesty.
Syntaxe
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 na vyrovnávací paměť obsahující absolutní nebo úplný název cesty nebo NULL.
relPath
Relativní název cesty
maxLength
Maximální délka vyrovnávací paměti názvu absolutní cesty (absPath). Tato délka je v bajtech pro _fullpath , ale v širokých znacích (wchar_t) pro _wfullpath.
Vrácená hodnota
Každá z těchto funkcí vrátí ukazatel na vyrovnávací paměť obsahující absolutní název cesty (absPath). Pokud dojde k chybě (například pokud předaná relPath hodnota obsahuje písmeno jednotky, které není platné nebo nelze najít, nebo pokud je délka vytvořené absolutní cestyabsPath větší než maxLength), vrátí NULLfunkce .
Poznámky
Funkce _fullpath rozbalí relativní název relPath cesty na jeho plně kvalifikovanou nebo absolutní cestu a uloží tento název do absPath. Pokud absPath je NULL, malloc slouží k přidělení vyrovnávací paměti s dostatečnou délkou pro uložení názvu cesty. Je zodpovědností volajícího uvolnit tuto vyrovnávací paměť. Relativní název cesty určuje cestu k jinému umístění z aktuálního umístění (například aktuální pracovní adresář: .). Absolutní název cesty je rozšíření relativního názvu cesty, který uvádí celou cestu potřebnou 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 použít k získání absolutního názvu cesty pro relativní cesty (relPath), které obsahují ./ nebo ../ v jejich názvech.
Pokud například chcete použít rutiny za běhu jazyka C, musí aplikace obsahovat soubory hlaviček, které obsahují deklarace pro rutiny. Každá direktiva souboru #include hlaviček odkazuje na umístění souboru relativním způsobem (z pracovního adresáře aplikace):
#include <stdlib.h>
pokud absolutní cesta (skutečné umístění systému souborů) souboru může být:
\\machine\shareName\msvcSrc\crt\headerFiles\stdlib.h
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
_fullpath automaticky zpracovává vícebajtové řetězcové argumenty podle potřeby a rozpoznává sekvence vícebajtových znaků podle aktuálně používané znakové stránky s vícebajty. _wfullpath je verze širokého znaku _fullpath; řetězcové argumenty, které mají _wfullpath být řetězce širokého znaku. _wfullpath a _fullpath chovat se identicky s tím rozdílem, že _wfullpath nezpracovává vícebajtové řetězce.
Pokud _DEBUG jsou definovány a _CRTDBG_MAP_ALLOC jsou definovány, volání a _fullpath _wfullpath jsou nahrazena voláními _fullpath_dbg a _wfullpath_dbg, aby bylo možné ladit přidělení paměti. Další informace naleznete v tématu _fullpath_dbg, _wfullpath_dbg.
Tato funkce vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru, pokud maxlen je menší nebo rovna 0. Pokud je spuštění povoleno pokračovat, tato funkce nastaví errno EINVAL a vrátí NULL.
Mapování rutin obecného textu
Tchar.h rutina |
_UNICODE and _MBCS není definováno |
_MBCS definovaný |
_UNICODE definovaný |
|---|---|---|---|
_tfullpath |
_fullpath |
_fullpath |
_wfullpath |
Pokud je absPath NULLvyrovnávací paměť , _fullpath volání malloc přidělení vyrovnávací paměti a ignoruje maxLength argument. Je zodpovědností volajícího uvolnit tuto vyrovnávací paměť (pomocí free) podle potřeby. relPath Pokud argument určuje diskovou jednotku, aktuální adresář této jednotky se zkombinuje s cestou.
Požadavky
| Function | Požadovaný hlavičkový soubor |
|---|---|
_fullpath |
<stdlib.h> |
_wfullpath |
<stdlib.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
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" );
}
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
Viz také
Zpracování souborů
_getcwd, _wgetcwd
_getdcwd, _wgetdcwd
_makepath, _wmakepath
_splitpath, _wsplitpath