共用方式為


_dupenv_s _wdupenv_s

從目前環境取得值。

重要

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

errno_t _dupenv_s(
   char **buffer,
   size_t *numberOfElements,
   const char *varname
);
errno_t _wdupenv_s(
   wchar_t **buffer,
   size_t *numberOfElements,
   const wchar_t *varname
);

參數

  • buffer
    將變數值的緩衝區。

  • numberOfElements
    buffer的大小。

  • varname
    環境變數名稱。

傳回值

零值會在成功,失敗則為錯誤碼。

這些函式會驗證它們的參數;如果 buffer 或 varname 是 NULL,無效的參數處理常式叫用如 參數驗證中所述。 如果執行允許繼續, EINVAL 和 EINVAL傳回的函式所設定的 errno 。

如果這些函式無法配置足夠的記憶體,所以請將 buffer 設定為 NULL 和 numberOfElements 為 0 並傳回 ENOMEM。

備註

_dupenv_s 函式會搜尋環境變數名稱的 varname。 如果找到變數, _dupenv_s 配置緩衝區複製到變數值輸入緩衝區。 緩衝區的位址和長度在 buffer 和 numberOfElements傳回。 傳遞配置緩衝區, _dupenv_s 提供更方便的替代 getenv_s _wgetenv_s

注意事項注意事項

為呼叫端的責任藉由呼叫 free來釋放記憶體。

如果變數是找不到 buffer ,則設定為 NULL, numberOfElements 會設為 0,因此,傳回值是 0,因為這種情況不會視為錯誤條件。

如果您不想緩衝區感興趣的大小可以傳遞 numberOfElements的 NULL 。

_dupenv_s 不區分大小寫的 Windows 作業系統中。 _dupenv_s 使用環境的複本指向由全域變數 _environ 存取環境。 如需 _environ的詳細資訊請參閱 getenv_s _wgetenv_s 中的 <備註>。

在 buffer 的值為環境變數值的複本;修改對環境沒有作用。 使用 _putenv_s _wputenv_s 函式來修改環境變數的值。

_wdupenv_s 是 _dupenv_s的寬字元版本; _wdupenv_s 引數是寬字元字串。 _wenviron 全域變數是 _environ寬字元版本。 為多個參閱 getenv_s _wgetenv_s 中的 < 在 _wenviron。

泛用文字常式對應

TCHAR.H 常式

未定義 _UNICODE & _MBCS

已定義 _MBCS

已定義 _UNICODE

_tdupenv_s

_dupenv_s

_dupenv_s

_wdupenv_s

需求

程序

必要的標頭檔

_dupenv_s

<stdlib.h>

_wdupenv_s

<stdlib.h> 或 <wchar.h>

如需其他相容性資訊,請參閱入門介紹中的 相容性 (Compatibility)

範例

// crt_dupenv_s.c
#include  <stdlib.h>

int main( void )
{
   char *pValue;
   size_t len;
   errno_t err = _dupenv_s( &pValue, &len, "pathext" );
   if ( err ) return -1;
   printf( "pathext = %s\n", pValue );
   free( pValue );
   err = _dupenv_s( &pValue, &len, "nonexistentvariable" );
   if ( err ) return -1;
   printf( "nonexistentvariable = %s\n", pValue );
   free( pValue ); // It's OK to call free with NULL
}

範例輸出

pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)

.NET Framework 對等用法

System::Environment::GetEnvironmentVariable

請參閱

參考

處理程序和環境控制

環境的常數

_dupenv_s_dbg _wdupenv_s_dbg

getenv_s _wgetenv_s

_putenv_s _wputenv_s