Bagikan melalui


_makepath, _wmakepath

Buat nama jalur dari komponen. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat _makepath_s, _wmakepath_s.

Sintaks

void _makepath(
   char *path,
   const char *drive,
   const char *dir,
   const char *fname,
   const char *ext
);
void _wmakepath(
   wchar_t *path,
   const wchar_t *drive,
   const wchar_t *dir,
   const wchar_t *fname,
   const wchar_t *ext
);

Parameter

path
Buffer jalur lengkap.

drive
Berisi huruf (A, B, dan sebagainya) yang sesuai dengan drive yang diinginkan dan titik dua berikutnya opsional. _makepath menyisipkan titik dua secara otomatis di jalur komposit jika hilang. Jika drive adalah NULL atau menunjuk ke string kosong, tidak ada huruf drive yang muncul dalam string komposit path .

dir
Berisi jalur direktori, tidak termasuk pendesain drive atau nama file aktual. Garis miring berikutnya bersifat opsional, dan garis miring ke depan (/) atau garis miring terbalik (\) atau keduanya mungkin digunakan dalam satu dir argumen. Jika tidak ada garis miring berikutnya (/ atau \) yang ditentukan, garis miring akan disisipkan secara otomatis. Jika dir adalah NULL atau menunjuk ke string kosong, tidak ada jalur direktori yang dimasukkan dalam string komposit path .

fname
Berisi nama file dasar tanpa ekstensi nama file. Jika fname adalah NULL atau menunjuk ke string kosong, tidak ada nama file yang dimasukkan dalam string komposit path .

ext
Berisi ekstensi nama file aktual, dengan atau tanpa periode awal (.). _makepath menyisipkan periode secara otomatis jika tidak muncul di ext. Jika ext adalah NULL atau menunjuk ke string kosong, tidak ada ekstensi yang dimasukkan dalam string komposit path .

Keterangan

Fungsi ini _makepath membuat string jalur komposit dari komponen individual, menyimpan hasilnya di path. mungkin path menyertakan huruf kandar, jalur direktori, nama file, dan ekstensi nama file. _wmakepath adalah versi karakter luas dari _makepath; argumen untuk _wmakepath adalah string karakter lebar. _wmakepath dan _makepath berulah secara identik jika tidak.

Catatan Keamanan Gunakan string yang dihentikan null. Untuk menghindari overrun buffer, string null-terminated tidak boleh melebihi ukuran path buffer. _makepath tidak memastikan bahwa panjang string jalur komposit tidak melebihi _MAX_PATH. Untuk informasi selengkapnya, lihat Menghindari overruns buffer.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Pemetaan rutin teks generik

Rutinitas Tchar.h _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tmakepath _makepath _makepath _wmakepath

Argumen path harus menunjuk ke buffer kosong yang cukup besar untuk menahan jalur lengkap. Komposit path tidak boleh lebih besar dari _MAX_PATH konstanta, yang didefinisikan dalam Stdlib.h.

Jika jalur adalah NULL, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Selain itu, errno diatur ke EINVAL. NULL nilai diperbolehkan untuk semua parameter lainnya.

Persyaratan

Rutin Header yang diperlukan
_makepath <stdlib.h>
_wmakepath <stdlib.h> atau <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_makepath.c
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char path_buffer[_MAX_PATH];
   char drive[_MAX_DRIVE];
   char dir[_MAX_DIR];
   char fname[_MAX_FNAME];
   char ext[_MAX_EXT];

   _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); // C4996
   // Note: _makepath is deprecated; consider using _makepath_s instead
   printf( "Path created with _makepath: %s\n\n", path_buffer );
   _splitpath( path_buffer, drive, dir, fname, ext ); // C4996
   // Note: _splitpath is deprecated; consider using _splitpath_s instead
   printf( "Path extracted with _splitpath:\n" );
   printf( "   Drive: %s\n", drive );
   printf( "   Dir: %s\n", dir );
   printf( "   Filename: %s\n", fname );
   printf( "   Ext: %s\n", ext );
}
Path created with _makepath: c:\sample\crt\makepath.c

Path extracted with _splitpath:
   Drive: c:
   Dir: \sample\crt\
   Filename: makepath
   Ext: .c

Lihat juga

Penanganan file
_fullpath, _wfullpath
_splitpath, _wsplitpath
_makepath_s, _wmakepath_s