Share via


_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, , LIBatau 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