Aracılığıyla paylaş


_getcwd, _wgetcwd

Geçerli çalışma dizinini alır.

Sözdizimi

char *_getcwd(
   char *buffer,
   int maxlen
);
wchar_t *_wgetcwd(
   wchar_t *buffer,
   int maxlen
);

Parametreler

buffer
Yolun konumunu Depolama.

maxlen
Yolun karakter cinsinden uzunluğu üst sınırı: char için _getcwd ve wchar_t için _wgetcwd.

Dönüş değeri

öğesine bir işaretçi bufferdöndürür. NULL Dönüş değeri bir hatayı gösterir ve errno bayt ayırmak maxlen için yeterli bellek olmadığını (bağımsız NULL değişken olarak bufferverildiğinde ) veya ERANGEyolunun karakterlerden maxlen uzun olduğunu belirten olarak ayarlanırENOMEM. Sıfırdan küçük veya sıfıra eşitsemaxlen, bu işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz bir parametre işleyicisi çağırır.

Bunlar ve diğer iade kodları hakkında daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

işlevi, _getcwd varsayılan sürücü için geçerli çalışma dizininin tam yolunu alır ve konumunda bufferdepolar. Tamsayı bağımsız değişkeni maxlen , yol için uzunluk üst sınırını belirtir. Yolun uzunluğu (sonlandırıcı null karakter dahil) değerini aşarsa maxlenbir hata oluşur. buffer Bağımsız değişken olabilirNULL; yolu depolamak için kullanılarak en az boyutta maxlen bir arabellek (yalnızca gerekirse daha fazla) otomatik olarak ayrılırmalloc. Bu arabellek daha sonra çağrılarak free ve dönüş değeri geçirilerek _getcwd serbestleştirilebilir (ayrılan arabelleğe yönelik bir işaretçi).

_getcwd geçerli çalışma dizininin yolunu temsil eden bir dize döndürür. Geçerli çalışma dizini kök ise, dize bir ters eğik çizgi (\ ile biter). Geçerli çalışma dizini kökten başka bir dizinse, dize ters eğik çizgiyle değil dizin adıyla biter.

_wgetcwd , öğesinin _getcwdgeniş karakterli bir sürümüdür; buffer bağımsız değişkeni ve dönüş değeri _wgetcwd geniş karakterli dizelerdir. _wgetcwd ve _getcwd aksi takdirde aynı şekilde davran.

ve _CRTDBG_MAP_ALLOC tanımlandığında_DEBUG, ve _wgetcwd çağrıları_getcwd, bellek ayırmalarında hata ayıklamanıza olanak sağlamak için ve _wgetcwd_dbgçağrılarıyla _getcwd_dbg değiştirilir. Daha fazla bilgi için bkz. _getcwd_dbg, _wgetcwd_dbg.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

Tchar.h Rutin _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tgetcwd _getcwd _getcwd _wgetcwd

Gereksinimler

Yordam Gerekli başlık
_getcwd <direct.h>
_wgetcwd <direct.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// 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

Ayrıca bkz.

Dizin denetimi
_chdir, _wchdir
_mkdir, _wmkdir
_rmdir, _wrmdir