_splitpath, _wsplitpath
Yol adı bileşenlerine bölün.Bu işlevlerin daha güvenli sürümleri mevcuttur, 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, üste (:).Sizin geçirebilirsiniz NULL sürücü harfini gerekmiyorsa, bu parametre için.dir
Eğik içeren dizin yolu.İleri eğik çizgi ( / ), ters eğik çizgi ( \ ), veya her ikisi de kullanılabilir.Sizin geçirebilirsiniz NULL dizin yolunu gerekmiyorsa, bu parametre için.fname
Temel dosya adı (uzantısı yok).Sizin geçirebilirsiniz NULL dosya adı gerekmiyorsa, bu parametre için.ext
Dönem satır aralığı da dahil olmak üzere, dosya adı uzantısı (.).Sizin geçirebilirsiniz NULL dosya adı uzantısı gerekmiyorsa, bu parametre için.
Notlar
_splitpath İşlevi yol dört bileşenlerinin keser._splitpathçok baytlı karakter dizileri çok baytlı kod sayfası şu anda kullanımda göre tanımayı çok baytlı karakter dizesi bağımsız değişkenleri uygun şekilde otomatik olarak yönetir._wsplitpath geniş karakterli bir _splitpath sürümüdür; _wsplitpath ile ilgili işaretçi bağımsız değişkenler geniş karakterli dizelerdir.Bu işlevler, aksi halde aynı şekilde davranır.
Güvenlik Notu Bu işlevler bir arabellek taşması sorunu oluştuğunda potansiyel bir tehlike doğurur.Arabellek taşması sorunları, haksız ayrıcalık sistem saldırı, bir unwarranted ayrıcalık yükseltilmesi ile sonuçlanan sık kullanılan bir sistem saldırısı yöntemidir.Daha fazla bilgi için, bkz. Arabellek Taşmalarını Önleme.Bu işlevlerin daha güvenli sürümlerinde kullanılabilir; bkz: _splitpath_s, _wsplitpath_s.
Genel Metin Yordam Eşleşmeleri
TCHAR.H yordamı |
_UNICODE & _MBCS tanımlanmamış |
_MBCS tanımlanmış |
_UNICODE tanımlanmış |
---|---|---|---|
_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 içinde tanımlanır.H) dosyası her 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 karşılık gelen Bildirim sabiti olarak olması gerekir.
Aşağıdaki tablo, bildirim sabitler değerleri listeler.
Ad |
Value |
---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
256 |
_MAX_FNAME |
256 |
_MAX_EXT |
256 |
Tam yolu (örneğin, bir dosya adı), bir bileşen içermiyorsa, _splitpath boş dizeler için karşılık gelen arabellek atar.
Sizin geçirebilirsiniz NULL için _splitpath dışında herhangi bir parametre için path , gerek yoktur.
path öğesi NULL ise, Parametre Doğrulama içinde açıklandığı şekilde geçersiz parametre işleyicisi çağrılır.Yürütmenin devam etmesine izin verilirse, errno öğesi EINVAL olarak ayarlanır ve işlev EINVAL döndürür.
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<string.h> veya <wchar.h> |
Ek uyumluluk bilgileri için Giriş altındaki Uyumluluk bölümüne bakın.
Örnek
Örnek için bkz: _makepath.
.NET Framework Eşdeğeri
Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.