Udostępnij za pośrednictwem


_searchenv, _wsearchenv

Używa ścieżki środowiska, aby wyszukać plik.Bezpieczniejsze wersje te funkcje są dostępne; see _searchenv_s, _wsearchenv_s.

Ważna uwagaWażne

Ten interfejs API nie można używać w aplikacji, których wykonywanie w Środowisko wykonawcze systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /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
    Nazwa pliku, aby wyszukać.

  • varname
    Środowisko do wyszukiwania.

  • pathname
    Bufor do przechowywania pełną ścieżkę.

Uwagi

_searchenv Procedura wyszukiwania dla pliku docelowego w określonej domenie.varname Zmienna może być dowolnym środowisku lub zmienną zdefiniowaną przez użytkownika — na przykład, PATH, LIB, lub INCLUDE— która określa listę ścieżek katalogów.Ponieważ _searchenv jest uwzględniana wielkość liter, varname powinien odpowiadać wielkości zmiennej środowiskowej.

Rutynowe najpierw szuka pliku w bieżącym katalogu roboczym.Jeżeli plik nie zostanie znaleziona, przeszukiwanie katalogów, które są określone przez zmienną środowiskową.Jeśli plik docelowy jest w jednym z tych katalogów, nowo utworzona ścieżka jest kopiowana do pathname.Jeśli filename nie zostanie znaleziony plik, pathname zawiera pusty ciąg zakończony znakiem null.

pathname Buforu powinna wynosić co najmniej _MAX_PATH znaków długo, aby pomieściły pełną nazwę ścieżki konstruowanej.W przeciwnym razie _searchenv może być przekroczenie pathname buforu i spowodować nieoczekiwane zachowanie.

_wsearchenvjest ona szerokich znaków do _searchenv, a argumenty do _wsearchenv są ciągami szerokich znaków._wsearchenvi _searchenv zachowują się identycznie inaczej.

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

Jeśli filename lub pathname jest NULL wskaźnik, program obsługi nieprawidłowy parametr jest wywoływana, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje zwracają wartość -1 i ustawić errno do EINVAL.

Aby uzyskać więcej informacji o errno i kody błędów, zobacz errno stałych.

W języku C++ te funkcje mają overloads szablonu, które wywołują nowsze, bezpieczniejsze odpowiedniki tych funkcji.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.

Tekst rodzajowy rutynowych mapowania

Rozpoczęto wykonywanie procedury TCHAR.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_tsearchenv

_searchenv

_searchenv

_wsearchenv

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_searchenv

<stdlib.h>

_wsearchenv

<stdlib.h> lub <wchar.h>

Informacji dotyczących 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 );
}
  

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywoływać funkcji C standardowej, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Platforma wywołać przykłady.

Zobacz też

Informacje

Formant katalogu

getenv, _wgetenv

_putenv, _wputenv

_searchenv_s, _wsearchenv_s