共用方式為


_getcwd _wgetcwd

取得目前的工作目錄。

重要

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

char *_getcwd( 
   char *buffer,
   int maxlen 
);
wchar_t *_wgetcwd( 
   wchar_t *buffer,
   int maxlen 
);

參數

  • buffer
    路徑的儲存位置。

  • maxlen
    路徑的最大長度 (以字元為單位): _getcwd 的 _wgetcwd的 char 和 wchar_t 。

傳回值

傳回 buffer 的指標。 NULL 傳回值指示錯誤,,且 errno 設為任一對 ENOMEM,表示有配置足夠的記憶體 maxlen 位元組 (當 NULL 引數為 buffer),或者為 ERANGE,表示路徑超過 maxlen 個字元。 如果 maxlen 小於或等於零,這個函式叫用無效的參數處理常式,如 參數驗證中所述。

如需更多關於這些和其他回傳碼的資訊,請參閱 _doserrno 、 errno 、 _sys_errlist 、和 _sys_nerr (_doserrno, errno, _sys_errlist, and _sys_nerr)

備註

_getcwd 函式取得目前工作目錄的完整路徑預設磁碟機的並將它儲存在 buffer。 整數引數 maxlen 為路徑的最大長度。 發生錯誤,如果路徑的長度 (包括結束的 null 字元) 超過 maxlen*。*buffer 引數可以是 NULL;至少 maxlen 大小緩衝區只 (如有必要),使用 malloc,自動配置,,儲存路徑。 這個緩衝區可以藉由呼叫 free 並將它傳遞給 _getcwd 傳回值之後釋放 (對配置緩衝區的指標)。

_getcwd 會傳回代表目前工作目錄路徑的字串。 如果目前的工作目錄是根目錄,字串以反斜線 ( \ ) 結束。 除了之外,如果工作目錄是目錄,字串結尾為目錄名稱和不以反斜線。

_wgetcwd 是 _getcwd的寬字元版本; buffer 引數和傳回值 _wgetcwd 是寬字元字串。 _wgetcwd 和 _getcwd 其餘行為相同。

當 _DEBUG 和 _CRTDBG_MAP_ALLOC 定義時,呼叫 _getcwd 和 _wgetcwd 是由 _getcwd_dbg 和 _wgetcwd_dbg 的呼叫取代允許偵錯記憶體配置。 如需詳細資訊,請參閱 _getcwd_dbg, _wgetcwd_dbg

泛用文字常式對應

Tchar.h 常式

未定義的 _UNICODE 和 _MBCS

已定義 _MBCS

已定義 _UNICODE

_tgetcwd

_getcwd

_getcwd

_wgetcwd

需求

程序

必要的標頭檔

_getcwd

<direct.h>

_wgetcwd

<direct.h> 或 <wchar.h>

如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility)

範例

// crt_getcwd.c
// This program places the name of the current directory in the 
// buffer array, then displays the name of the current directory 
// on the screen. Passing NULL as the buffer forces getcwd to allocate
// memory for the path, which allows the code to support file paths
// longer than _MAX_PATH, which are supported by NTFS.
 
#include <direct.h>
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char* buffer;

   // Get the current working directory: 
   if( (buffer = _getcwd( NULL, 0 )) == NULL )
      perror( "_getcwd error" );
   else
   {
      printf( "%s \nLength: %d\n", buffer, strnlen(buffer) );
      free(buffer);
   }
}
  

.NET Framework 對等用法

System::Environment::CurrentDirectory

請參閱

參考

目錄控制項

_chdir _wchdir

_mkdir _wmkdir

_rmdir _wrmdir