_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
, LIB
lub 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 pathname
pliku . 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ą _searchenv
ję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ą ENOENT
wartość .
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ść errno
EINVAL
.
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 zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_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