Share via


_fullpath, _wfullpath

Belirtilen göreli yol adı için mutlak veya tam yol adı oluşturur.

Sözdizimi

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

Parametreler

absPath
Mutlak veya tam yol adını içeren bir arabelleğe yönelik işaretçi veya NULL.

relPath
Göreli yol adı.

maxLength
Mutlak yol adı arabelleğinin uzunluğu üst sınırı (absPath). Bu uzunluk için _fullpath bayt cinsinden, ancak için geniş karakter (wchar_t) _wfullpathcinsindendir.

Dönüş değeri

Bu işlevlerin her biri, mutlak yol adını (absPath ) içeren bir arabelleğe yönelik bir işaretçi döndürür. Bir hata varsa (örneğin, geçirilen relPath değer geçerli olmayan veya bulunamıyor bir sürücü harfi içeriyorsa veya oluşturulan mutlak yol adının uzunluğu (absPath) değerinden maxLengthbüyükse), işlevi döndürür NULL.

Açıklamalar

işlevi içindeki _fullpathrelPath göreli yol adını tam veya mutlak yoluna genişletir ve bu adı içinde absPathdepolar. ise absPathNULL, malloc yol adını tutmak için yeterli uzunlukta bir arabellek ayırmak için kullanılır. Bu arabelleği boşaltmak çağıranın sorumluluğundadır. Göreli yol adı, geçerli konumdan (geçerli çalışma dizini: .gibi) başka bir konuma giden yolu belirtir. Mutlak yol adı, dosya sisteminin kökünden istenen konuma ulaşmak için gereken yolun tamamını belirten göreli yol adının genişletilmesidir. 'nin aksine_makepath, _fullpath adlarını içeren ./ veya ../ içeren göreli yolların (relPath) mutlak yol adını almak için kullanılabilir.

Örneğin, C çalışma zamanı yordamlarını kullanmak için uygulamanın yordamların bildirimlerini içeren üst bilgi dosyalarını içermesi gerekir. Her üst bilgi dosyası #include yönergesi, dosyanın konumuna göreli bir şekilde (uygulamanın çalışma dizininden) başvurur:

#include <stdlib.h>

dosyanın mutlak yolu (gerçek dosya sistemi konumu) şu şekilde olabilir:

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

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

_fullpath çok baytlı dize bağımsız değişkenlerini uygun şekilde otomatik olarak işler ve kullanımda olan çok baytlı kod sayfasına göre çok baytlı karakter dizilerini algılar. _wfullpath , öğesinin _fullpathgeniş karakterli bir sürümüdür; için _wfullpath dize bağımsız değişkenleri geniş karakterli dizelerdir. _wfullpath ve _fullpath çok baytlı dizeleri işlememesi dışında _wfullpath aynı şekilde davranır.

ve _CRTDBG_MAP_ALLOC her ikisi de tanımlanmışsa_DEBUG, ve çağrıları _fullpath_wfullpath, bellek ayırmalarında hata ayıklamanıza olanak sağlamak için ve _wfullpath_dbgçağrılarıyla _fullpath_dbg değiştirilir. Daha fazla bilgi için bkz. _fullpath_dbg, _wfullpath_dbg.

Bu işlev, 0'dan küçük veya 0'a eşitse maxlen Parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlev olarak EINVAL ayarlanır errno ve döndürürNULL.

Genel metin yordamı eşlemeleri

Tchar.h Rutin _UNICODE and _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tfullpath _fullpath _fullpath _wfullpath

absPath Arabellek iseNULL, _fullpath arabelleği ayırmak için öğesini çağırır malloc ve bağımsız değişkeni yoksayarmaxLength. Bu arabelleği (kullanarak free) uygun şekilde serbest bırakmak çağıranın sorumluluğundadır. relPath Bağımsız değişken bir disk sürücüsü belirtirse, bu sürücünün geçerli dizini yol ile birleştirilir.

Gereksinimler

Function Gerekli başlık
_fullpath <stdlib.h>
_wfullpath <stdlib.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

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

Ayrıca bkz.

Dosya işleme
_getcwd, _wgetcwd
_getdcwd, _wgetdcwd
_makepath, _wmakepath
_splitpath, _wsplitpath