_splitpath, _wsplitpath
Yol adı bileşenlerine bölün. Bu işlevler daha güvenli sürümleri yüklenebilir, bkz: _splitpath_s, _wsplitpath_s.
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 yolu.drive
Sürücü harfi, üst üste işaretiyle (:). Geçirebilirsiniz NULL sürücü harfini gerekmiyorsa, bu parametre için.dir
Sondaki eğik çizgi içeren dizin yolu. İleri eğik çizgi ( / ), ters eğik çizgi ( \ ), ya da her ikisi de kullanılabilir. Geçirebilirsiniz NULL dizin yolunu gerekmiyorsa, bu parametre için.fname
Temel dosya adı (uzantısı yok). Geçirebilirsiniz NULL dosyaadı gerekmiyorsa, bu parametre için.ext
Dönem başında da dahil olmak üzere, dosya adı uzantısı (.). Geçirebilirsiniz NULL dosya adı uzantısı gerekmiyorsa, bu parametre için.
Notlar
_splitpath İşlevi, dört bileşenlerine bir yol keser. _splitpathşu anda kullanımda çok baytlı kod sayfasına göre çok baytlı karakter dizileri tanımayı çok baytlı karakter dizesi değişkenleri uygun şekilde otomatik olarak yönetir. _wsplitpathgeniş karakter sürümü _splitpath; bağımsız _wsplitpath geniş karakter dizeleridir. Bu işlevler aynı şekilde aksi davranırlar.
Güvenlik Notu bu işlevler duruma bir arabellek taşması sorunu bir tehdidin tabi. Arabellek Taşması sorunları unwarranted bir ayrıcalık ortaya çıkan sistem saldırı sık kullanılan bir yöntemdir. Daha fazla bilgi için bkz: Önleme arabelleğin taşmasına neden. Bu işlevler daha güvenli sürümlerinin kullanılabilir olduğunu; Bkz: _splitpath_s, _wsplitpath_s.
Genel metin yordamı eşlemeleri
TCHAR.H yordamına girildi |
_UNICODE & _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Tam yolu her bileşeni ayrı bir arabellekte depolanır; Bildirim sabitler _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, ve _MAX_EXT (STDLIB'de tanımlanmıştır.h) her dosya bileşen için en büyük boyutu belirtin. İlgili bildirim sabitleri büyük dosya bileşenleri yığın bozulmasına neden.
Her arabellek olası arabellek taşmasından kaçınmak için ilgili bildirim sabiti olarak daha büyük olması gerekir.
Bildirim sabitler değerleri aşağıdaki tabloda listelenmektedir.
Ad |
Value |
---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
256 |
_MAX_FNAME |
256 |
_MAX_EXT |
256 |
Bir bileşen (örneğin, bir dosya adı), tam yolu içermiyorsa, _splitpath boş dizeler için karşılık gelen arabellek atar.
Geçirebilirsiniz NULL için _splitpath dışında herhangi bir parametre için path gereksinim.
path Olan NULL, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama. Yürütülmesine devam etmek için izin verilip verilmediğini errno ayarlamak EINVAL işlevini verir ve EINVAL.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> veya <wchar.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
Örnek için bkz: _makepath.
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.