Aracılığıyla paylaş


_splitpath_s, _wsplitpath_s

Yol adı bileşenlerine ayırır. Bunlar sürümleridir _splitpath, _wsplitpath açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.

errno_t _splitpath_s(
   const char * path,
   char * drive,
   size_t driveNumberOfElements,
   char * dir,
   size_t dirNumberOfElements,
   char * fname,
   size_t nameNumberOfElements,
   char * ext, 
   size_t extNumberOfElements
);
errno_t _wsplitpath_s(
   const wchar_t * path,
   wchar_t * drive,
   size_t driveNumberOfElements,
   wchar_t *dir,
   size_t dirNumberOfElements,
   wchar_t * fname,
   size_t nameNumberOfElements,
   wchar_t * ext,
   size_t extNumberOfElements
);
template <size_t drivesize, size_t dirsize, size_t fnamesize, size_t extsize>
errno_t _splitpath_s(
   const char *path,
   char (&drive)[drivesize],
   char (&dir)[dirsize],
   char (&fname)[fnamesize],
   char (&ext)[extsize]
); // C++ only
template <size_t drivesize, size_t dirsize, size_t fnamesize, size_t extsize>
errno_t _wsplitpath_s(
   const wchar_t *path,
   wchar_t (&drive)[drivesize],
   wchar_t (&dir)[dirsize],
   wchar_t (&fname)[fnamesize],
   wchar_t (&ext)[extsize]
); // C++ only

Parametreler

  • [in]path
    Tam yolu.

  • [Çıkış]drive
    Sürücü harfi, üst üste işaretiyle (:). Geçirebilirsiniz NULL sürücü harfini gerekmiyorsa, bu parametre için.

  • [in]driveNumberOfElements
    Boyutunu drive tek bayt veya geniş karakter arabelleği. drive Olan NULL, bu değerin 0 olması gerekir.

  • [Çıkış]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.

  • [in]dirNumberOfElements
    Boyutunu dir tek bayt veya geniş karakter arabelleği. dir Olan NULL, bu değerin 0 olması gerekir.

  • [Çıkış]fname
    Temel dosya adı (uzantısı olmadan). Geçirebilirsiniz NULL dosyaadı gerekmiyorsa, bu parametre için.

  • [in]nameNumberOfElements
    Boyutunu fname tek bayt veya geniş karakter arabelleği. fname Olan NULL, bu değerin 0 olması gerekir.

  • [Çıkış]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.

  • [in]extNumberOfElements
    Boyutunu ext tek bayt veya geniş karakter arabelleği. ext Olan NULL, bu değerin 0 olması gerekir.

Dönüş Değeri

Sıfır başarılı olursa; hata durumunda bir hata kodu.

Hata koşulları

Koşul

Dönüş Değeri

pathİş NULL

EINVAL

driveis NULL, driveNumberOfElements is non-zero

EINVAL

driveis non-NULL, driveNumberOfElements is zero

EINVAL

diris NULL, dirNumberOfElements is non-zero

EINVAL

diris non-NULL, dirNumberOfElements is zero

EINVAL

fnameis NULL, nameNumberOfElements is non-zero

EINVAL

fnameis non-NULL, nameNumberOfElements is zero

EINVAL

extis NULL, extNumberOfElements is non-zero

EINVAL

extis non-NULL, extNumberOfElements is zero

EINVAL

Yukarıdaki koşullardan herhangi biri meydana gelirse, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama . Yürütülmesine devam etmek için izin verilmişse, bu işlevler kümesi errno için EINVAL ve EINVAL.

Arabellekleri biri sonucu tutmak için kısa, bu işlevler boş dizeler için ayarlanmış tüm arabellekler temizleyin errno için ERANGEve ERANGE.

Notlar

_splitpath_s İşlevi, dört bileşenlerine bir yol keser. _splitpath_s ş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. _wsplitpath_s geniş karakter sürümü _splitpath_s; bağımsız _wsplitpath_sgeniş karakter dizeleridir. Aksi takdirde bu işlevler aynı şekilde davranır

Genel metin yordamı eşlemeleri

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlı değil

Tanımlanan _mbcs

Tanımlanan _UNICODE

_tsplitpath_s

_splitpath_s

_splitpath_s

_wsplitpath_s

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 izin verilen boyut sınırı belirtin. Bileşenler, ilgili bildirim sabitleri yığın bozulmasına neden daha büyük dosya.

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_s karşılık gelen arabellek boş bir dize atar.

C++'da, bu işlevler tarafından şablon aşırı kolaylaştırılmıştır; aşırı arabellek uzunluğu otomatik olarak size baðýmsýz deðiþkeni belirtmek için gereksiz gerçekleştirip. Daha fazla bilgi için bkz. Güvenli şablon aşırı yükleme.

Bu işlevleri hata ayıklama sürümlerini ilk tampon 0xFD ile doldurun. Bu davranışı devre dışı bırakmak için _CrtSetDebugFillThreshold.

Gereksinimler

Yordamı

Gerekli başlık

_splitpath_s

<stdlib.h>

_wsplitpath_s

<stdlib.h> veya <wchar.h>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

Örnek için bkz: _makepath_s, _wmakepath_s.

.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.

Ayrıca bkz.

Başvuru

Dosya işleme

_splitpath, _wsplitpath

_fullpath, _wfullpath

_getmbcp

_makepath, _wmakepath

_setmbcp