_getdcwd _wgetdcwd
取得目前工作目錄的完整路徑在指定磁碟上。
重要
這個 API 不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW。
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
參數
drive
指定磁碟機上的非負數整數 (0 = 預設磁碟機, 1 = 2 = A, B,依此類推)。如果指定的磁碟無法使用,或是種類磁碟機 (例如,可移動,固定, CD-ROM、RAM 磁碟或網路磁碟) 無法判斷的,無效的參數處理常式,在 參數驗證中所述,叫用。
buffer
路徑的儲存位置則為 NULL。如果指定 NULL ,這個函式透過 malloc的至少 maxlen 大小的緩衝區和傳回值 _getdcwd 是指向配置的緩衝區。 緩衝區可以藉由呼叫 free 並將它傳遞指標釋放。
maxlen
指定路徑的最大長度的非零的整數,在字元: _getdcwd 的 _wgetdcwd的 char 和 wchar_t 。如果 maxlen 不大於零,無效的參數處理常式,在 參數驗證中所述,叫用。
傳回值
out 表示目前工作目錄的完整路徑在指定磁碟上之字串的指標,或 NULL表示錯誤。
如果指定 buffer ,因為 NULL 且 maxlen 字元配置的記憶體不足,則會發生錯誤和 errno 設定為 ENOMEM。 如果路徑的長度,包括結束的 null 字元,超出 maxlen,則會發生錯誤和 errno 設定為 ERANGE。 如需這些錯誤碼的詳細資訊,請參閱 errno、 _doserrno、 _sys_errlist 和 _sys_nerr。
備註
_getdcwd 函式取得目前工作目錄的完整路徑在指定磁碟上並將它儲存在 buffer。 如果目前的工作目錄設定為根,字串以反斜線 (\) 結束。 除了之外,如果工作目錄設定為目錄,字串結尾為目錄名稱和不以反斜線。
_wgetdcwd 是 _getdcwd,寬字元版本,而且其 buffer 參數和傳回值是寬字元字串。 否則, _wgetdcwd 和 _getdcwd 相同的行為。
這個函式是安全執行緒,但會根據 GetFullPathName,本身不是安全執行緒。 不過,因此,如果您的多執行緒應用程式呼叫這個函式和 GetFullPathName,您可以違反安全執行緒。 如需詳細資訊,請 MSDN Library 移至然後搜尋 GetFullPathName。
具有 _nolock 後置字元相同的行為與此函式的版本這個函式,但它不是安全執行緒並不會防止由其他執行緒的功能。 如需詳細資訊,請參閱_getdcwd_nolock _wgetdcwd_nolock。
當 _DEBUG 和 _CRTDBG_MAP_ALLOC 定義時,呼叫 _getdcwd 和 _wgetdcwd 是由 _getdcwd_dbg 和 _wgetdcwd_dbg 的呼叫取代,讓您可以偵錯記憶體配置。 如需詳細資訊,請參閱 _getdcwd_dbg _wgetdcwd_dbg。
泛用文字常式對應
Tchar.h 常式 |
未定義的 _UNICODE 和 _MBCS |
已定義 _MBCS |
已定義 _UNICODE |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
需求
程序 |
必要的標頭檔 |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> 或 <wchar.h> |
如需相容性詳細資訊,請參閱 相容性。
範例
請參閱 _getdrive 中的範例。
.NET Framework 對等用法
System::Environment::CurrentDirectory