_searchenv, _wsearchenv

Bir dosyayı aramak için ortam yolları kullanır.Bu işlevlerin daha güvenli sürümlerinde kullanılabilir; see _searchenv_s, _wsearchenv_s.

Önemli notÖnemli

Bu API yürütün uygulamalarda kullanılamaz Windows Çalışma Zamanı.Daha fazla bilgi için bkz: /zw ile desteklenmeyen crt işlevlerinin.

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
    Aramak için ortamı.

  • pathname
    Tam yol depolamak için arabellek.

Notlar

_searchenv Yordamı belirtilen etki alanındaki hedef dosya arar.varname Herhangi bir ortam veya kullanıcı tanımlı değişken değişken olabilir — örneğin, PATH, LIB, veya INCLUDE— dizin yolların listesini belirtir.Çünkü _searchenv duyarlıdır, varname ortam değişkeni harf eşleşmesi gerekir.

İlk yordam geçerli çalışma dizini dosyasında arar.Dosyayı bulamazsa, ortam değişkeni tarafından belirtilen dizinler içinde arar.Hedef dosya, bu dizinlerden biri ise, yeni oluşturulan yol kopyalanır pathname.filename Dosya bulunamadı, pathname boş sonlandırılmış bir dize içerir.

pathname Arabellek en az olması _MAX_PATH karakter uzunluğunda yapılandırılmış yol adı uzunluğu tam uyum sağlayacak.Aksi halde, _searchenv Taşması pathname arabellek ve beklenmeyen davranışlara neden olabilir.

_wsearchenvgeniş karakter sürümü _searchenvve bağımsız _wsearchenv geniş karakter dizeleridir._wsearchenvve _searchenv Aksi takdirde aynı şekilde davranır.

filename Bu işlevler dönmek boş bir dize olan ENOENT.

filename Veya pathname olan bir NULL işaretçisi geçersiz parametre işleyici çağrıldığında, açıklandığı gibi Parametre Doğrulama.Yürütülmesine devam etmek için izin verilirse, bu işlevler -1 döndürür ve errno için EINVAL.

Hakkında daha fazla bilgi için errno ve hata kodlarý errno Sabitleri.

Bu işlevleri C++'da, bu işlevlerin daha yeni ve daha güvenli karşılıkları çağırmak şablon aşırı yükleme vardır.Daha fazla bilgi için bkz. Güvenli Şablon Aşırı Yüklemeleri.

Genel metin eşlemeleri yordamına girildi

Tchar.h yordamına girildi

_UNICODE ve _mbcs tanımlanmamış

Tanımlanan _mbcs

Tanımlanan _UNICODE

_tsearchenv

_searchenv

_searchenv

_wsearchenv

Gereksinimler

Yordamı

Gerekli başlık

_searchenv

<stdlib.h>

_wsearchenv

<stdlib.h> veya <wchar.h>

Daha fazla uyumluluk bilgileri 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 );
}
  

.NET Framework Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanın PInvoke. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.

Ayrıca bkz.

Başvuru

Dizin Denetimi

getenv, _wgetenv

_putenv, _wputenv

_searchenv_s, _wsearchenv_s