_makepath, _wmakepath
Yol adı bileşenlerini oluşturmak.Bu işlevler daha güvenli sürümlerinin kullanılabilir olduğunu; see _makepath_s, _wmakepath_s.
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 arabellek.drive
Bir harf (a, b vb.) içeren istediğiniz sürücüyü ve isteğe bağlı sonunda iki nokta karşılık gelen._makepatheksik ise, iki nokta üst üste bileşik yolun otomatik olarak ekler.drive Olan NULL veya boş bir dize için sürücü harfi puntoda bileşik path dize.dir
Sürücü göstergesi ya da gerçek bir dosya adı içermeyen dizin yolunu içerir.Eğik isteğe bağlıdır ve eğik çizgi (/) veya ters eğik çizgi (\) veya her ikisini tek bir kullanılabilir dir bağımsız değişkeni.Eğik çizgiye yok ise (/ veya \) belirtilmişse, otomatik olarak eklenir.dir Olan NULL veya boş bir dize, hiçbir dizin yolu noktalara bileşik eklenen path dize.fname
Herhangi bir dosya adı uzantıları olmadan temel dosya adı içeriyor.fname Olan NULL ya da dosya adı boş bir dize noktalara bileşik eklenen path dize.ext
Gerçek dosya adı uzantısı olan veya nokta (.) koymadan içerir._makepathDönem içinde görüntülenmezse, otomatik olarak ekler ext.ext Olan NULL veya boş bir dize, hiçbir uzantı noktalara bileşik eklenen path dize.
Notlar
_makepath İşlev sonucu depolamak bağımsız bileşenlerden bir bileşik yol dizesi oluşturur path.path Bir sürücü harfini, dizin yolu, dosya adı ve dosya adı uzantısı içerebilir._wmakepathgeniş karakter sürümü _makepath; bağımsız _wmakepath geniş karakter dizeleridir._wmakepathve _makepath Aksi takdirde aynı şekilde davranır.
Güvenlik Notu boş sonlandırılmış bir dizeyi kullanın.Arabellek Taşması kaçınmak için boş sonlandırılmış dize boyutunu aşmamalıdır path arabellek._makepathBileşik yolu dize uzunluğunu değil aşan olun _MAX_PATH.Daha fazla bilgi için bkz: Önleme arabelleğin taşmasına neden.
Genel metin yordamı eşlemeleri
Tchar.h yordamına girildi |
_UNICODE ve _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tmakepath |
_makepath |
_makepath |
_wmakepath |
path Bağımsız değişkeni, bir boş arabellek için tam yolunu tutacak büyüklükte göstermelidir.Bileşik path değerinden daha büyük olması _MAX_PATH sabiti, Stdlib.h içinde tanımlanan.
Yol, NULL, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre Doğrulama.Buna ek olarak, errno ayarlamak EINVAL.NULLtüm diğer parametreler için izin verilen değerler.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_makepath |
<stdlib.h> |
_wmakepath |
<stdlib.h> veya <wchar.h> |
Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.
Ö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 );
}