_searchenv, _wsearchenv
Używa ścieżki środowiska, aby wyszukać plik.Bezpieczniejsze wersje te funkcje są dostępne; see _searchenv_s, _wsearchenv_s.
Waż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łe.
W języku C++ te funkcje mają overloads szablonu, które wywołują nowsze, bezpieczniejsze odpowiedniki tych funkcji.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.
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 Przykłady wywołań platformy.