Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yolu bileşenlere ayırma. Bu işlevlerin daha güvenli sürümleri için bkz _splitpath_s. , _wsplitpath_s.
Sözdizimi
void _splitpath(
const char *path,
char *drive,
char *dir,
char *fname,
char *ext
);
void _wsplitpath(
const wchar_t *path,
wchar_t *drive,
wchar_t *dir,
wchar_t *fname,
wchar_t *ext
);
Parametreler
path
Tam yol.
drive
Sürücü harfi ve ardından iki nokta üst üste (:). Sürücü harfine ihtiyacınız yoksa bu parametreyi geçirebilirsiniz NULL .
dir
Dizin yolu, sondaki eğik çizgi de dahil. eğik çizgi (/), ters eğik çizgi ()\ veya her ikisi de kullanılabilir. Dizin yoluna ihtiyacınız yoksa bu parametreyi geçirin NULL .
fname
Temel dosya adı (uzantı yok). Dosya adına ihtiyacınız yoksa bu parametreyi geçirin NULL .
ext
Baştaki nokta (.) dahil olmak üzere dosya adı uzantısı. Dosya adı uzantısına ihtiyacınız yoksa bu parametreyi geçirin NULL .
Açıklamalar
İşlev, _splitpath dört bileşenine bir yol ayırır.
_splitpath ç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.
_wsplitpath , öğesinin _splitpathgeniş karakterli bir sürümüdür; için bağımsız değişkenler _wsplitpath geniş karakterli dizelerdir. Bu işlevler aynı şekilde davranır.
Güvenlik Notu Bu işlevler arabellek taşmalarına tabidir. Arabellek taşması sorunları sık karşılaşılan bir sistem saldırısı yöntemidir ve bu da ayrıcalıkların gereksiz bir şekilde yükseltilmesine neden olur. Daha fazla bilgi için bkz . Arabellek taşmalarından kaçınma. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _splitpath_s, _wsplitpath_s.
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 olağan |
_UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
|---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Tam yolun her bileşeni ayrı bir arabellekte depolanır; , , _MAX_DRIVE_MAX_DIRve _MAX_FNAME (içinde _MAX_EXTtanımlanan) bildirim sabitleriSTDLIB.H, her dosya bileşeni için en büyük boyutu belirtir. İlgili bildirim sabitlerinden daha büyük dosya bileşenleri yığın bozulmasına neden olur.
Olası arabellek taşmasını önlemek için her arabellek ilgili bildirim sabiti kadar büyük olmalıdır.
Aşağıdaki tabloda bildirim sabitlerinin değerleri listelemektedir.
| Veri Akışı Adı | Değer |
|---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
Kategori 256 |
_MAX_FNAME |
Kategori 256 |
_MAX_EXT |
Kategori 256 |
Tam yol bir bileşen (örneğin, bir dosya adı) _splitpath içermiyorsa, karşılık gelen arabelleklere boş dizeler atar.
İhtiyaç duymadığınız dışında herhangi bir parametre NULL için adresine geçirebilirsiniz._splitpathpath
ise pathNULL, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin veriliyorsa, errno olarak EINVALayarlanır.
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> veya <wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
örneğine _makepathbakın.
Ayrıca bkz.
Dosya işleme
_fullpath, _wfullpath
_getmbcp
_makepath, _wmakepath
_setmbcp
_splitpath_s, _wsplitpath_s