_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
Yol için depolama konumu.
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 buffer
dö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 buffer
verildiğinde ) veya ERANGE
yolunun 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_errlist
ve _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 buffer
depolar. 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 maxlen
bir 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 _getcwd
geniş 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 olağan |
_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