Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memecah jalur menjadi komponen. Untuk versi fungsi ini yang lebih aman tersedia, lihat _splitpath_s, _wsplitpath_s.
Sintaks
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
);
Parameter
path
Jalur lengkap.
drive
Huruf kandar, diikuti dengan titik dua (:). Anda dapat meneruskan NULL parameter ini jika Anda tidak memerlukan huruf drive.
dir
Jalur direktori, termasuk garis miring berikutnya. Garis miring (/), garis miring terbalik (\), atau keduanya dapat digunakan. Teruskan NULL untuk parameter ini jika Anda tidak memerlukan jalur direktori.
fname
Nama file dasar (tanpa ekstensi). Teruskan NULL untuk parameter ini jika Anda tidak memerlukan nama file.
ext
Ekstensi nama file, termasuk periode awal (.). Teruskan NULL untuk parameter ini jika Anda tidak memerlukan ekstensi nama file.
Keterangan
Fungsi ini _splitpath memecah jalur menjadi empat komponennya.
_splitpath secara otomatis menangani argumen string multibyte-character yang sesuai, mengenali urutan karakter multibyte sesuai dengan halaman kode multibyte yang saat ini digunakan.
_wsplitpath adalah versi karakter luas dari _splitpath; argumen untuk _wsplitpath adalah string karakter lebar. Fungsi-fungsi ini berulah secara identik jika tidak.
Catatan Keamanan Fungsi-fungsi ini tunduk pada buffer overrun. Masalah buffer overrun adalah metode serangan sistem yang sering, yang mengakibatkan peningkatan hak istimewa yang tidak beralasan. Untuk informasi selengkapnya, lihat Menghindari overruns buffer. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat _splitpath_s, _wsplitpath_s.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR.H Rutin |
_UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
|---|---|---|---|
_tsplitpath |
_splitpath |
_splitpath |
_wsplitpath |
Setiap komponen jalur lengkap disimpan dalam buffer terpisah; konstanta _MAX_DRIVEmanifes , _MAX_DIR, _MAX_FNAME, dan _MAX_EXT (ditentukan dalam STDLIB.H) menentukan ukuran maksimum untuk setiap komponen file. Komponen file yang lebih besar dari konstanta manifes yang sesuai menyebabkan kerusakan tumpukan.
Setiap buffer harus sebesar konstanta manifes yang sesuai untuk menghindari potensi buffer overrun.
Tabel berikut mencantumkan nilai konstanta manifes.
| Nama | Nilai |
|---|---|
_MAX_DRIVE |
3 |
_MAX_DIR |
256 |
_MAX_FNAME |
256 |
_MAX_EXT |
256 |
Jika jalur lengkap tidak berisi komponen (misalnya, nama file), _splitpath menetapkan string kosong ke buffer yang sesuai.
Anda dapat meneruskan NULL ke _splitpath parameter apa pun selain path yang tidak Anda butuhkan.
Jika path adalah NULL, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno diatur ke EINVAL.
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
_splitpath |
<stdlib.h> |
_wsplitpath |
<stdlib.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
Lihat contoh untuk _makepath.
Lihat juga
Penanganan file
_fullpath, _wfullpath
_getmbcp
_makepath, _wmakepath
_setmbcp
_splitpath_s, _wsplitpath_s