Share via


_getdcwd, _wgetdcwd

Mendapatkan jalur lengkap direktori kerja saat ini pada drive yang ditentukan.

Sintaks

char *_getdcwd(
   int drive,
   char *buffer,
   int maxlen
);
wchar_t *_wgetdcwd(
   int drive,
   wchar_t *buffer,
   int maxlen
);

Parameter

drive
Bilangan bulat non-negatif yang menentukan drive (0 = drive default, 1 = A, 2 = B, dan sebagainya).

Jika drive yang ditentukan tidak tersedia, handler parameter yang tidak valid akan dipanggil. Ini juga dipanggil ketika jenis drive (misalnya, dapat dilepas, diperbaiki, CD-ROM, disk RAM, atau drive jaringan) tidak dapat ditentukan. Untuk informasi selengkapnya, lihat Validasi parameter.

buffer
Lokasi penyimpanan untuk jalur, atau NULL.

Jika NULL ditentukan, fungsi ini mengalokasikan buffer dengan ukuran setidaknya maxlen dengan menggunakan malloc, dan nilai _getdcwd pengembalian adalah penunjuk ke buffer yang dialokasikan. Buffer dapat dibebaskan dengan memanggil free dan meneruskannya penunjuk.

maxlen
Bilangan bulat positif bukan nol yang menentukan panjang maksimum jalur, dalam karakter: char untuk _getdcwd dan wchar_t untuk _wgetdcwd.

Jika maxlen kurang dari atau sama dengan nol, handler parameter tidak valid dipanggil. Untuk informasi selengkapnya, lihat Validasi parameter.

Nilai hasil

Penunjuk ke string yang mewakili jalur lengkap direktori kerja saat ini pada drive yang ditentukan, atau NULL, yang menunjukkan kesalahan.

Jika buffer ditentukan sebagai NULL dan memori tidak cukup untuk mengalokasikan maxlen karakter, kesalahan terjadi dan errno diatur ke ENOMEM. Jika panjang jalur termasuk karakter null yang mengakhiri melebihi maxlen, kesalahan terjadi, dan errno diatur ke ERANGE. Untuk informasi selengkapnya tentang kode kesalahan ini, lihat errno, , _doserrno_sys_errlist, dan _sys_nerr.

Keterangan

Fungsi ini _getdcwd mendapatkan jalur lengkap direktori kerja saat ini pada drive yang ditentukan dan menyimpannya di buffer. Jika direktori kerja saat ini diatur ke akar, string berakhir dengan garis miring terbelakang (\). Jika direktori kerja saat ini diatur ke direktori selain akar, string berakhir dengan nama direktori dan bukan dengan garis miring terbelakang.

_wgetdcwd adalah versi karakter luas dari _getdcwd, dan parameter dan nilai pengembaliannya buffer adalah string karakter lebar. Jika tidak, _wgetdcwd dan _getdcwd berulah identik.

Fungsi ini aman utas meskipun tergantung pada GetFullPathName, yang itu sendiri tidak aman utas. Namun, Anda dapat melanggar keamanan utas jika aplikasi multithreaded Anda memanggil fungsi ini dan GetFullPathName.

Versi fungsi ini yang memiliki _nolock akhiran berperilaku identik dengan fungsi ini kecuali tidak aman untuk utas dan tidak terlindungi dari gangguan oleh utas lain. Untuk informasi selengkapnya, lihat _getdcwd_nolock, _wgetdcwd_nolock.

Ketika _DEBUG dan _CRTDBG_MAP_ALLOC didefinisikan, panggilan ke _getdcwd dan _wgetdcwd digantikan oleh panggilan ke _getdcwd_dbg dan _wgetdcwd_dbg, sehingga Anda dapat men-debug alokasi memori. Untuk informasi selengkapnya, lihat_getdcwd_dbg, _wgetdcwd_dbg.

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
_tgetdcwd _getdcwd _getdcwd _wgetdcwd

Persyaratan

Rutin Header yang diperlukan
_getdcwd <direct.h>
_wgetdcwd <direct.h> atau <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

Lihat contoh di _getdrive.

Baca juga

Kontrol direktori
_chdir, _wchdir
_getcwd, _wgetcwd
_getdrive
_mkdir, _wmkdir
_rmdir, _wrmdir