共用方式為


_getdcwd、_wgetdcwd

取得目前工作目錄的完整路徑在指定磁碟上。

重要

這個應用程式開發介面不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 /ZW 不支援 CRT 函式

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

參數

  • drive
    指定磁碟機的非負數整數 (0 = 預設磁碟機,1 = A,2= B,依此類推)。

    如果指定的磁碟無法使用,或是無法判斷磁碟的種類 (例如:可移動、固定、 CD-ROM、RAM 磁碟或網路磁碟),在 參數驗證中所述的無效參數處理常式將被叫用。

  • buffer
    路徑或NULL的儲存位置。

    如果指定 NULL ,這個函式透過 malloc配置至少maxlen 大小的緩衝區,而_getdcwd的傳回值是指向已配置緩衝區的指標。 緩衝區可以藉由呼叫 free 並將它傳遞至指標以達到釋放目的。

  • maxlen
    指定路徑的最大長度之非零正整數,在字元為:_getdcwd的char,以及_wgetdcwd的wchar_t。

    如果 maxlen 不大於零,將叫用如參數驗證中所述的無效參數處理常式。

傳回值

指標,其表示目前工作目錄在指定磁碟上的完整路徑之字串,或表示錯誤的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 and _MBCS

已定義 _MBCS

已定義 _UNICODE

_tgetdcwd

_getdcwd

_getdcwd

_wgetdcwd

需求

常式

必要的標頭

_getdcwd

<direct.h>

_wgetdcwd

<direct.h>或<wchar.h>

如需詳細的相容性資訊,請參閱相容性

範例

請參閱 _getdrive 中的範例。

.NET Framework 對等用法

System::Environment::CurrentDirectory

請參閱

參考

目錄控制

_chdir、_wchdir

_getcwd、_wgetcwd

_getdrive

_mkdir、_wmkdir

_rmdir、_wrmdir