Aracılığıyla paylaş


_makepath, _wmakepath

Bileşenlerden bir yol adı oluşturun. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _makepath_s, _wmakepath_s.

Sözdizimi

void _makepath(
   char *path,
   const char *drive,
   const char *dir,
   const char *fname,
   const char *ext
);
void _wmakepath(
   wchar_t *path,
   const wchar_t *drive,
   const wchar_t *dir,
   const wchar_t *fname,
   const wchar_t *ext
);

Parametreler

path
Tam yol arabelleği.

drive
İstenen sürücüye karşılık gelen bir harf (A, B vb.) ve isteğe bağlı bir sondaki iki nokta üst üste içerir. _makepath eksikse bileşik yola otomatik olarak iki nokta üst üste ekler. boş bir dizeyse driveNULL veya bu dizeyi işaret ederse, bileşik path dizede sürücü harfi görüntülenmez.

dir
Sürücü belirteci veya gerçek dosya adı dahil değil dizinlerin yolunu içerir. Sondaki eğik çizgi isteğe bağlıdır ve tek dir bir bağımsız değişkende eğik çizgi (/) veya ters eğik çizgi (\) ya da her ikisi de kullanılabilir. Sondaki eğik çizgi (/ veya \) belirtilmezse, otomatik olarak eklenir. boş bir dizeyse dirNULL veya bu dizeyi işaret ederse, bileşik path dizeye dizin yolu eklenmez.

fname
Herhangi bir dosya adı uzantısı olmadan temel dosya adını içerir. boş bir dizeye NULL işaret ederse fname veya işaret ederse, bileşik path dizeye dosya adı eklenmez.

ext
Gerçek dosya adı uzantısını, başında nokta (.) olan veya olmayan bir uzantıyı içerir. _makepath içinde görünmüyorsa extdönemi otomatik olarak ekler. boş bir dizeyse extNULL veya bu dizeyi işaret ederse, bileşik path dizeye uzantı eklenmez.

Açıklamalar

işlevi, _makepath tek tek bileşenlerden bileşik bir yol dizesi oluşturur ve sonucu içinde pathdepolar. bir path sürücü harfi, dizin yolu, dosya adı ve dosya adı uzantısı içerebilir. _wmakepath , öğesinin _makepathgeniş karakterli bir sürümüdür; için bağımsız değişkenler _wmakepath geniş karakterli dizelerdir. _wmakepath ve _makepath aksi takdirde aynı şekilde davran.

Güvenlik Notu Null olarak sonlandırılan bir dize kullanın. Arabellek taşmasını önlemek için, null ile sonlandırılan dize arabellek boyutunu path aşmamalıdır. _makepath bileşik yol dizesinin uzunluğunun aşmamasını _MAX_PATHsağlamaz. Daha fazla bilgi için bkz . Arabellek taşmalarından kaçınma.

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.

Genel metin yordamı eşlemeleri

Tchar.h yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tmakepath _makepath _makepath _wmakepath

Bağımsız değişken, path tam yolu tutacak kadar büyük boş bir arabelleğe işaret etmelidir. Bileşik path , Stdlib.h dosyasında tanımlanan sabitten _MAX_PATH büyük olmamalıdır.

yol iseNULL, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Buna ek olarak, errno olarak EINVALayarlanır. NULL diğer tüm parametreler için değerlere izin verilir.

Gereksinimler

Yordam Gerekli başlık
_makepath <stdlib.h>
_wmakepath <stdlib.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_makepath.c
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char path_buffer[_MAX_PATH];
   char drive[_MAX_DRIVE];
   char dir[_MAX_DIR];
   char fname[_MAX_FNAME];
   char ext[_MAX_EXT];

   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); // C4996
   // Note: _makepath is deprecated; consider using _makepath_s instead
   printf( "Path created with _makepath: %s\n\n", path_buffer );
   _splitpath( path_buffer, drive, dir, fname, ext ); // C4996
   // Note: _splitpath is deprecated; consider using _splitpath_s instead
   printf( "Path extracted with _splitpath:\n" );
   printf( "   Drive: %s\n", drive );
   printf( "   Dir: %s\n", dir );
   printf( "   Filename: %s\n", fname );
   printf( "   Ext: %s\n", ext );
}
Path created with _makepath: c:\sample\crt\makepath.c

Path extracted with _splitpath:
   Drive: c:
   Dir: \sample\crt\
   Filename: makepath
   Ext: .c

Ayrıca bkz.

Dosya işleme
_fullpath, _wfullpath
_splitpath, _wsplitpath
_makepath_s, _wmakepath_s