_searchenv, _wsearchenv
Wird Umgebungspfade, um eine Datei zu suchen. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter _searchenv_s, _wsearchenv_s.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die im Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.
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
Parameter
filename
Der Name der zu suchenden Datei.varname
Zu durchsuchende Umgebung.pathname
Puffer zum Speichern des vollständigen Pfades.
Hinweise
Die _searchenv-Routine sucht in der angegebenen Domäne nach der Zieldatei. Die Variable varname kann Variable – z. B. PATH, LIB oder INCLUDE jede Umgebung oder benutzerdefiniert sein - das eine Liste von Verzeichnispfaden angibt. Da _searchenv die Groß-/Kleinschreibung beachtet, sollte varname mit der Groß-/Kleinschreibung der Umgebungsvariablen übereinstimmen.
Die der Routine Suchen zuerst für die Datei im aktuellen Arbeitsverzeichnis. Wenn es nicht die Datei findet, sucht es von der Verzeichnisse, die mithilfe der Umgebungsvariablen angegeben werden. Wenn die Zieldatei in einem dieser Verzeichnisse ist, wird der neu erstellte Pfad in pathname kopiert. Wenn die Datei filename nicht gefunden wird, enthält pathname eine leere auf NULL abschließende Zeichenfolge.
Der Puffer pathname sollte mindestens _MAX_PATH Zeichen lang sein, um die volle Länge des erstellten Pfadnamens zu unterstützen. Andernfalls kann _searchenv den pathname Puffer überlaufen und unerwartetem Verhalten führen.
_wsearchenv ist eine Breitzeichen-Version von _searchenv, und die Argumente für _wsearchenv sind Zeichenfolgen mit Breitzeichen. _wsearchenv und _searchenv verhalten sich andernfalls identisch.
Wenn filename eine leere Zeichenfolge ist, diese Funktionen Rückhol- ENOENT.
Wenn filename oder pathname ein NULL-Zeiger ist, wird, wie in Parametervalidierung beschrieben, der Handler für ungültige Parameter aufgerufen. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen "– 1" zurück und legen errno auf EINVAL fest.
Weitere Informationen über errno und Fehlercodes, finden Sie unter errno-Konstanten.
In C++ sind diese Funktionen Vorlagenüberladungen, die die neueren aufrufen, sichereren Entsprechungen dieser Funktionen. Weitere Informationen finden Sie unter Sichere Vorlagenüberladungen.
Zuordnung generischer Textroutinen
Tchar.h-Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tsearchenv |
_searchenv |
_searchenv |
_wsearchenv |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_searchenv |
<stdlib.h> |
_wsearchenv |
<stdlib.h> oder <wchar.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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 );
}
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.