Udostępnij za pośrednictwem


_searchenv, _wsearchenv

Używa ścieżek środowiskowych do wyszukiwania pliku. Dostępne są bezpieczniejsze wersje tych funkcji; zobacz _searchenv_s, _wsearchenv_s.

Ważne

Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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
Nazwa pliku do wyszukania.

varname
Środowisko do wyszukiwania.

pathname
Bufor do przechowywania pełnej ścieżki.

Uwagi

Rutynowe _searchenv wyszukiwanie pliku docelowego w określonej domenie. Zmienna varname może być dowolną zmienną środowiskową lub zdefiniowaną przez użytkownika — na przykład PATH, LIBlub INCLUDE— określającą listę ścieżek katalogu. Ponieważ _searchenv uwzględniana jest wielkość liter, varname powinna odpowiadać wielkości liter zmiennej środowiskowej.

Procedury najpierw wyszukują plik w bieżącym katalogu roboczym. Jeśli plik nie zostanie odnaleźć, przejdą przez katalogi określone przez zmienną środowiskową. Jeśli plik docelowy znajduje się w jednym z tych katalogów, nowo utworzona ścieżka zostanie skopiowana do pathnamepliku . filename Jeśli plik nie zostanie znaleziony, pathname zawiera pusty ciąg zakończony wartością null.

Bufor pathname powinien mieć długość co najmniej _MAX_PATH znaków, aby pomieścić pełną długość skonstruowanej nazwy ścieżki. _searchenv W przeciwnym razie może zostać zastąpiony pathname bufor i spowodować nieoczekiwane zachowanie.

_wsearchenv jest wersją _searchenvjęzyka i argumentami, które _wsearchenv mają być ciągami o szerokim znaku. _wsearchenv i _searchenv zachowywać się identycznie inaczej.

Jeśli filename jest pustym ciągiem, te funkcje zwracają ENOENTwartość .

Jeśli filename lub pathname jest wskaźnikiem NULL , wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie może kontynuować, te funkcje zwracają wartość -1 i ustawiają wartość errnoEINVAL.

Aby uzyskać więcej informacji na temat errno kodów błędów i ich kodów, zobacz errno stałe.

W języku C++te funkcje mają przeciążenia szablonów, które wywołują nowsze, bezpieczniejsze odpowiedniki tych funkcji. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura tchar.h _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tsearchenv _searchenv _searchenv _wsearchenv

Wymagania

Procedura Wymagany nagłówek
_searchenv <stdlib.h>
_wsearchenv <stdlib.h> lub <wchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

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

Zobacz też

Kontrolka katalogu
getenv, _wgetenv
_putenv, _wputenv
_searchenv_s, _wsearchenv_s