_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
buffer
Ukuran .
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_s
Gunakan 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk