Aracılığıyla paylaş


_getdcwd, _wgetdcwd

Belirtilen sürücüdeki geçerli çalışma dizininin tam yolunu alır.

Sözdizimi

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

Parametreler

drive
Sürücüyü belirten negatif olmayan bir tamsayı (0 = varsayılan sürücü, 1 = A, 2 = B vb.).

Belirtilen sürücü kullanılamıyorsa geçersiz parametre işleyicisi çağrılır. Ayrıca, sürücü türü (örneğin, çıkarılabilir, sabit, CD-ROM, RAM disk veya ağ sürücüsü) belirlenemiyorsa da çağrılır. Daha fazla bilgi için bkz . Parametre doğrulama.

buffer
yol NULLveya için Depolama konumu.

belirtilirseNULL, bu işlev kullanarak mallocen az maxlen boyutta bir arabellek ayırır ve dönüş değeri _getdcwd ayrılmış arabelleğe yönelik bir işaretçidir. Arabellek çağrılarak free ve işaretçi geçirilerek serbestleştirilebilir.

maxlen
Yolun en uzun uzunluğunu belirten sıfır olmayan pozitif tamsayı( için _getdcwd ve wchar_t için_wgetdcwd) karakterleriyle char gösterilir.

Sıfırdan küçük veya sıfıra eşitse maxlen , invalid-parameter işleyicisi çağrılır. Daha fazla bilgi için bkz . Parametre doğrulama.

Dönüş değeri

Belirtilen sürücüdeki geçerli çalışma dizininin tam yolunu temsil eden bir dize işaretçisi veya NULLbir hata olduğunu gösterir.

olarak belirtilirse buffer ve karakterleri ayırmak maxlen için yeterli bellek yoksa, bir hata oluşur ve errno olarak ENOMEMayarlanır.NULL Sonlandırıcı null karakter de dahil olmak üzere yolun uzunluğu değerini aşarsa maxlenbir hata oluşur ve errno olarak ERANGEayarlanır. Bu hata kodları hakkında daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

İşlev, _getdcwd belirtilen sürücüdeki geçerli çalışma dizininin tam yolunu alır ve konumunda bufferdepolar. Geçerli çalışma dizini kök olarak ayarlanırsa, dize ters eğik çizgi (\) ile biter. Geçerli çalışma dizini kökten başka bir dizine ayarlanırsa, dize ters eğik çizgiyle değil, dizinin adıyla biter.

_wgetdcwd , öğesinin _getdcwdgeniş karakterli bir sürümüdür ve parametresi buffer ve dönüş değeri geniş karakterli dizelerdir. Aksi takdirde ve _wgetdcwd_getdcwd aynı şekilde davran.

Bu işlev, kendisine bağlı GetFullPathNameolsa bile iş parçacığı açısından güvenlidir ve iş parçacığı açısından güvenli değildir. Ancak, çok iş parçacıklı uygulamanız hem bu işlevi GetFullPathNamehem de çağırırsa iş parçacığı güvenliğini ihlal edebilirsiniz.

Son eki olan _nolock bu işlevin sürümü, iş parçacığı güvenli olmadığı ve diğer iş parçacıkları tarafından müdahaleye karşı korunmadığı dışında bu işlevle aynı şekilde davranır. Daha fazla bilgi için bkz. _getdcwd_nolock, _wgetdcwd_nolock.

ve tanımlandığında_DEBUG, ve _wgetdcwd çağrıları_getdcwd, bellek ayırmalarında hata ayıklamak için _getdcwd_dbg ve _wgetdcwd_dbgçağrılarıyla değiştirilir._CRTDBG_MAP_ALLOC Daha fazla bilgi için bkz._wgetdcwd_dbg_getdcwd_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 yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tgetdcwd _getdcwd _getdcwd _wgetdcwd

Gereksinimler

Yordam Gerekli başlık
_getdcwd <direct.h>
_wgetdcwd <direct.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

içindeki _getdriveörne bakın.

Ayrıca bkz.

Dizin denetimi
_chdir, _wchdir
_getcwd, _wgetcwd
_getdrive
_mkdir, _wmkdir
_rmdir, _wrmdir