_getcwd
, _wgetcwd
Mendapatkan direktori kerja saat ini.
Sintaks
char *_getcwd(
char *buffer,
int maxlen
);
wchar_t *_wgetcwd(
wchar_t *buffer,
int maxlen
);
Parameter
buffer
Lokasi penyimpanan untuk jalur.
maxlen
Panjang maksimum jalur dalam karakter: char
untuk _getcwd
dan wchar_t
untuk _wgetcwd
.
Nilai hasil
Mengembalikan penunjuk ke buffer
. NULL
Nilai pengembalian menunjukkan kesalahan, dan errno
diatur baik ke ENOMEM
, yang menunjukkan bahwa tidak ada cukup memori untuk mengalokasikan maxlen
byte (ketika NULL
argumen diberikan sebagai buffer
), atau ke ERANGE
, menunjukkan bahwa jalur lebih panjang dari maxlen
karakter. Jika maxlen
kurang dari atau sama dengan nol, fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter.
Untuk informasi selengkapnya tentang kode pengembalian ini dan lainnya, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Keterangan
Fungsi ini _getcwd
mendapatkan jalur lengkap direktori kerja saat ini untuk drive default dan menyimpannya di buffer
. Argumen maxlen
bilangan bulat menentukan panjang maksimum untuk jalur. Kesalahan terjadi jika panjang jalur (termasuk karakter null yang dihentikan) melebihi maxlen
. Argumen buffer
bisa ; NULL
buffer dengan ukuran maxlen
setidaknya (lebih hanya jika perlu) dialokasikan secara otomatis, menggunakan malloc
, untuk menyimpan jalur. Buffer ini nantinya dapat dibebaskan dengan memanggil free
dan meneruskannya nilai _getcwd
pengembalian (pointer ke buffer yang dialokasikan).
_getcwd
mengembalikan string yang mewakili jalur direktori kerja saat ini. Jika direktori kerja saat ini adalah root, string berakhir dengan garis miring terbelakang (\
). Jika direktori kerja saat ini adalah direktori selain akar, string berakhir dengan nama direktori dan bukan dengan garis miring terbelakang.
_wgetcwd
adalah versi karakter yang luas dari _getcwd
; buffer
argumen dan nilai yang dikembalikan adalah _wgetcwd
string karakter lebar. _wgetcwd
dan _getcwd
berulah secara identik jika tidak.
Ketika _DEBUG
dan _CRTDBG_MAP_ALLOC
didefinisikan, panggilan ke _getcwd
dan _wgetcwd
digantikan oleh panggilan ke _getcwd_dbg
dan _wgetcwd_dbg
, untuk memungkinkan Anda men-debug alokasi memori. Untuk informasi selengkapnya, lihat _getcwd_dbg
, _wgetcwd_dbg
.
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 |
---|---|---|---|
_tgetcwd |
_getcwd |
_getcwd |
_wgetcwd |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_getcwd |
<direct.h> |
_wgetcwd |
<direct.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_getcwd.c
// Compile with: cl /W4 crt_getcwd.c
// This program places the name of the current directory in the
// buffer array, then displays the name of the current directory
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.
#include <direct.h> // _getcwd
#include <stdlib.h> // free, perror
#include <stdio.h> // printf
#include <string.h> // strlen
int main( void )
{
char* buffer;
// Get the current working directory:
if ( (buffer = _getcwd( NULL, 0 )) == NULL )
perror( "_getcwd error" );
else
{
printf( "%s \nLength: %zu\n", buffer, strlen(buffer) );
free(buffer);
}
}
C:\Code
Baca juga
Kontrol direktori
_chdir
, _wchdir
_mkdir
, _wmkdir
_rmdir
, _wrmdir
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk