共用方式為


_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

請參閱

參考

目錄控制項

_chdir _wchdir

_getcwd _wgetcwd

_getdrive

_mkdir _wmkdir

_rmdir _wrmdir