Aracılığıyla paylaş


_searchenv, _wsearchenv

Bir dosyayı aramak için ortam yollarını kullanır. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. _searchenv_s, _wsearchenv_s.

Önemli

Bu API, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.

Sözdizimi

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

Parametreler

filename
Aranacak dosyanın adı.

varname
Aranacak ortam.

pathname
Tam yolu depolamak için arabellek.

Açıklamalar

Yordam, _searchenv belirtilen etki alanındaki hedef dosyayı arar. Değişken varname , dizin yollarının listesini belirten herhangi bir ortam veya kullanıcı tanımlı değişken (örneğin, PATH, LIBveya INCLUDE) olabilir. Büyük _searchenv /küçük harfe duyarlı olduğundan ortam varname değişkeninin büyük/küçük harfle eşleşmesi gerekir.

Yordam ilk olarak geçerli çalışma dizinindeki dosyayı arar. Dosyayı bulamazsa, ortam değişkeni tarafından belirtilen dizinleri arar. Hedef dosya bu dizinlerden birindeyse, yeni oluşturulan yol içine pathnamekopyalanır. filename Dosya bulunamazsa boş pathname bir null ile sonlandırılan dize içerir.

Arabellek, pathname oluşturulacak yol adının tam uzunluğuna uyum sağlamak için en az _MAX_PATH karakter uzunluğunda olmalıdır. Aksi takdirde, _searchenv arabellek taşabilir pathname ve beklenmeyen davranışlara neden olabilir.

_wsearchenv , öğesinin _searchenvgeniş karakterli bir sürümüdür ve için _wsearchenv bağımsız değişkenler geniş karakterli dizelerdir. _wsearchenv ve _searchenv aksi takdirde aynı şekilde davran.

Boş bir dizeyse filename , bu işlevler döndürür ENOENT.

veya pathname bir işaretçiysefilename, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi NULL çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlevler -1 döndürür ve olarak EINVALayarlanırerrno.

ve hata kodları hakkında errno daha fazla bilgi için bkz errno . sabitler.

C++'ta, bu işlevlerin daha yeni ve daha güvenli karşılıklarını çağıran şablon aşırı yüklemeleri vardır. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

Tchar.h yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tsearchenv _searchenv _searchenv _wsearchenv

Gereksinimler

Yordam Gerekli başlık
_searchenv <stdlib.h>
_wsearchenv <stdlib.h> veya <wchar.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

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

Ayrıca bkz.

Dizin denetimi
getenv, _wgetenv
_putenv, _wputenv
_searchenv_s, _wsearchenv_s