Bagikan melalui


_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 ; NULLbuffer 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