Bagikan melalui


_dupenv_s, _wdupenv_s

Mendapatkan nilai dari lingkungan saat ini.

Penting

API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.

Sintaks

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
);

Parameter

buffer
Buffer untuk menyimpan nilai variabel.

numberOfElements
bufferUkuran .

varname
Nama variabel lingkungan.

Nilai hasil

Nol pada keberhasilan, kode kesalahan pada kegagalan.

Fungsi-fungsi ini memvalidasi parameternya; jika buffer atau varname adalah NULL, handler parameter yang tidak valid dipanggil seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi diatur errno ke EINVAL dan mengembalikan EINVAL.

Jika fungsi-fungsi ini tidak dapat mengalokasikan memori yang cukup, fungsi tersebut diatur buffer ke NULL dan numberOfElements ke 0, dan mengembalikan ENOMEM.

Keterangan

Fungsi ini _dupenv_s mencari daftar variabel lingkungan untuk varname. Jika variabel ditemukan, _dupenv_s alokasikan buffer dan salin nilai variabel ke dalam buffer. Alamat dan panjang buffer dikembalikan di buffer dan numberOfElements. Karena mengalokasikan buffer itu sendiri, _dupenv_s memberikan alternatif yang lebih nyaman untuk getenv_s, _wgetenv_s.

Catatan

Ini adalah tanggung jawab program panggilan untuk membebaskan memori dengan memanggil free.

Jika variabel tidak ditemukan, maka buffer diatur ke NULL, numberOfElements diatur ke 0, dan nilai yang dikembalikan adalah 0 karena situasi ini tidak dianggap sebagai kondisi kesalahan.

Jika Anda tidak tertarik dengan ukuran buffer, Anda dapat meneruskan NULL untuk numberOfElements.

_dupenv_s tidak peka huruf besar/kecil dalam sistem operasi Windows. _dupenv_s menggunakan salinan lingkungan yang ditujukkan oleh variabel _environ global untuk mengakses lingkungan. Lihat Komentar di getenv_s, _wgetenv_s untuk diskusi tentang _environ.

Nilai dalam buffer adalah salinan nilai variabel lingkungan; memodifikasinya tidak berpengaruh pada lingkungan. _putenv_sGunakan fungsi , _wputenv_s untuk memodifikasi nilai variabel lingkungan.

_wdupenv_s adalah versi karakter luas dari _dupenv_s; argumen adalah _wdupenv_s string karakter lebar. Variabel _wenviron global adalah versi karakter luas dari _environ. Lihat Komentar di getenv_s, _wgetenv_s untuk informasi selengkapnya tentang _wenviron.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Pemetaan rutin teks generik

TCHAR.H Rutin _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tdupenv_s _dupenv_s _dupenv_s _wdupenv_s

Persyaratan

Rutin Header yang diperlukan
_dupenv_s <stdlib.h>
_wdupenv_s <stdlib.h> atau <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// 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)

Lihat juga

Kontrol proses dan lingkungan
Konstanta lingkungan
_dupenv_s_dbg, _wdupenv_s_dbg
getenv_s, _wgetenv_s
_putenv_s, _wputenv_s