_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
Yolu NULL
veya için depolama konumu.
belirtilirseNULL
, bu işlev kullanarak malloc
en 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 NULL
bir 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 ENOMEM
ayarlanır.NULL
Sonlandırıcı null karakter de dahil olmak üzere yolun uzunluğu değerini aşarsa maxlen
bir hata oluşur ve errno
olarak ERANGE
ayarlanır. Bu hata kodları hakkında daha fazla bilgi için bkz. errno
, _doserrno
, _sys_errlist
ve _sys_nerr
.
Açıklamalar
İşlev, _getdcwd
belirtilen sürücüdeki geçerli çalışma dizininin tam yolunu alır ve konumunda buffer
depolar. 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 _getdcwd
geniş 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ı GetFullPathName
olsa 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 GetFullPathName
hem 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