_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é |
---|
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.