Sdílet prostřednictvím


_searchenv, _wsearchenv

Chcete-li vyhledat soubor používá prostředí cesty.Bezpečnější verze tyto funkce jsou k dispozici; see _searchenv_s, _wsearchenv_s.

Důležitá poznámkaDůležité

Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v prostředí Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW.

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

Parametry

  • filename
    Název souboru, který chcete vyhledat.

  • varname
    Prostředí pro vyhledávání.

  • pathname
    Chcete-li vyrovnávací paměť pro ukládání úplnou cestu.

Poznámky

_searchenv Obvyklé hledání pro cílový soubor v zadané doméně.varname Proměnná může být uživatelem definovaná proměnná ani prostředí – například PATH, LIB, nebo INCLUDE– určuje seznam cest.Protože _searchenv je malá a velká písmena, varname by měl rozlišovat malá a velká proměnné prostředí.

Rutinní nejprve hledá soubor v aktuální pracovní adresář.Pokud jej nenalezne, vyhledá prostřednictvím adresáře, které jsou určené proměnnou prostředí.Pokud je cílový soubor v některém z těchto adresářů, nově vytvořené cesty je zkopírována do pathname.Pokud filename soubor nebyl nalezen, pathname obsahuje prázdný řetězec zakončený hodnotou null.

pathname Vyrovnávací paměť by měla být nejméně _MAX_PATH znaků dlouhé podle celé délky vypočtené cesta.V opačném případě se _searchenv může přetečení pathname vyrovnávací paměti a způsobit neočekávané chování.

_wsearchenvje verzí širokého znaku _searchenva argumenty pro _wsearchenv jsou řetězci širokého znaku._wsearchenva _searchenv jinak chovat identicky.

Pokud filename je prázdný řetězec, vrátí tyto funkce ENOENT.

Pokud filename nebo pathname je NULL je vyvolán ukazatel, obslužná rutina neplatný parametr, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění pokračovat, vrátí tyto funkce hodnotu -1 a errno na EINVAL.

Další informace o errno a kódy chyb, viz errno – konstanty.

V jazyce C++ mají tyto funkce šablony přetížení, které vyvolávají novější, bezpečnější protějšky těchto funkcí.Další informace naleznete v tématu Přetížení zabezpečení šablony.

Mapování rutiny obecného textu

Byla zahájena rutina Tchar.h

_UNICODE a _MBCS není definováno

_MBCS, definice

_UNICODE definována

_tsearchenv

_searchenv

_searchenv

_wsearchenv

Požadavky

Byla zahájena rutina

Požadované záhlaví

_searchenv

<stdlib.h>

_wsearchenv

<stdlib.h> nebo <wchar.h>

Další informace o kompatibilitě v tématu Kompatibilita.

Příklad

// 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 );
}
  

Ekvivalent v rozhraní .NET Framework

Nelze použít Volání funkce standardním C pomocí PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.

Viz také

Referenční dokumentace

Ovládací prvek adresáře

getenv, _wgetenv

_putenv, _wputenv

_searchenv_s, _wsearchenv_s