_searchenv
, _wsearchenv
Menggunakan jalur lingkungan untuk mencari file. Versi yang lebih aman dari fungsi-fungsi ini tersedia; lihat _searchenv_s
, _wsearchenv_s
.
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
void _searchenv(
const char *filename,
const char *varname,
char *pathname
);
void _wsearchenv(
const wchar_t *filename,
const wchar_t *varname,
wchar_t *pathname
);
template <size_t size>
void _searchenv(
const char *filename,
const char *varname,
char (&pathname)[size]
); // C++ only
template <size_t size>
void _wsearchenv(
const wchar_t *filename,
const wchar_t *varname,
wchar_t (&pathname)[size]
); // C++ only
Parameter
filename
Nama file yang akan dicari.
varname
Lingkungan untuk dicari.
pathname
Buffer untuk menyimpan jalur lengkap.
Keterangan
Rutinitas _searchenv
mencari file target di domain yang ditentukan. Variabel varname
dapat berupa lingkungan atau variabel yang ditentukan pengguna—misalnya, PATH
, , LIB
atau INCLUDE
—yang menentukan daftar jalur direktori. Karena _searchenv
peka huruf besar/kecil, varname
harus cocok dengan kasus variabel lingkungan.
Rutinitas pertama kali mencari file di direktori kerja saat ini. Jika tidak menemukan file, file akan melihat direktori yang ditentukan oleh variabel lingkungan. Jika file target berada di salah satu direktori tersebut, jalur yang baru dibuat disalin ke dalam pathname
. filename
Jika file tidak ditemukan, pathname
berisi string kosong yang dihentikan null.
Buffer pathname
harus setidaknya _MAX_PATH
panjang karakter untuk mengakomodasi panjang penuh nama jalur yang dibangun. Jika tidak, _searchenv
mungkin menimpa pathname
buffer dan menyebabkan perilaku tak terduga.
_wsearchenv
adalah versi karakter luas dari _searchenv
, dan argumen untuk _wsearchenv
adalah string karakter lebar. _wsearchenv
dan _searchenv
berulah secara identik jika tidak.
Jika filename
adalah string kosong, fungsi-fungsi ini mengembalikan ENOENT
.
Jika filename
atau pathname
adalah NULL
penunjuk, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan -1 dan diatur errno
ke EINVAL
.
Untuk informasi selengkapnya tentang errno
kode kesalahan dan , lihat errno
konstanta.
Di C++, fungsi-fungsi ini memiliki kelebihan beban templat yang memanggil rekan-rekan yang lebih baru dan lebih aman dari fungsi-fungsi ini. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tsearchenv |
_searchenv |
_searchenv |
_wsearchenv |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_searchenv |
<stdlib.h> |
_wsearchenv |
<stdlib.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_searchenv.c
// compile with: /W3
// This program searches for a file in
// a directory that's specified by an environment variable.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char pathbuffer[_MAX_PATH];
char searchfile[] = "CL.EXE";
char envvar[] = "PATH";
// Search for file in PATH environment variable:
_searchenv( searchfile, envvar, pathbuffer ); // C4996
// Note: _searchenv is deprecated; consider using _searchenv_s
if( *pathbuffer != '\0' )
printf( "Path for %s:\n%s\n", searchfile, pathbuffer );
else
printf( "%s not found\n", searchfile );
}
Path for CL.EXE:
C:\Program Files\Microsoft Visual Studio 8\VC\BIN\CL.EXE
Baca juga
Kontrol direktori
getenv
, _wgetenv
_putenv
, _wputenv
_searchenv_s
, _wsearchenv_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