_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.

Siehe auch

Referenz

Verzeichnissteuerung

getenv, _wgetenv

_putenv, _wputenv

_searchenv_s, _wsearchenv_s