Freigeben über


_searchenv, _wsearchenv

Wird Umgebungspfade, um eine Datei zu suchen.Sicherere Versionen dieser Funktionen sind verfügbar; finden Sie unter _searchenv_s, _wsearchenv_s.

Wichtiger HinweisWichtig

Diese API kann nicht in den Anwendungen verwendet werden, die in Windows-Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /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

Parameter

  • filename
    Name der zu suchenden Datei.

  • varname
    Zum Suchen Umgebung.

  • pathname
    Der Puffer, dem des vollständigen Pfads zu speichern.

Hinweise

Die _searchenv Routinensuchen für die Zieldatei in der angegebenen Domäne.Die varname-Variable 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 wird, sollte varname den Fall von der Umgebungsvariablen übereinstimmen.

Die der Routine Suchen zuerst für die Datei im aktuellen Arbeitsverzeichnis.Wenn es nicht die Datei durchsucht, sucht es durch die Verzeichnisse, die in der - Umgebungsvariablen angegeben werden.Wenn die Zieledatei in einem dieser Verzeichnisse ist, wird der neu erstellte Pfad in pathname kopiert.Wenn die filename Datei nicht gefunden wird, enthält pathname eine leere auf NULL endende Zeichenfolge.

Der pathname Puffer sollte _MAX_PATH Zeichen mindestens sein, lang, um das in voller Länge des erstellten Pfadnamens angepasst.Andernfalls kann _searchenv den pathname Puffer überlaufen und unerwartetes Verhalten.

_wsearchenv ist eine Breitzeichen-Version von _searchenv, und die Argumente für _wsearchenv sind Breitzeichen-Zeichenfolgen._wsearchenv und _searchenv verhalten sich andernfalls identisch.

Wenn filename eine leere Zeichenfolge ist, geben diese Funktionen ENOENT zurück.

Wenn filename oder pathname ein NULL Zeiger ist, ist der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, geben diese Funktionen -1 und Menge errno zu EINVAL zurück.

Weitere Informationen zu 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 Speichern Sie Vorlagen-Überladungen.

Zuordnung generische 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 Kompatibilitätsinformation 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. Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Verzeichnis-Steuerelement

getenv, _wgetenv

_putenv, _wputenv

_searchenv_s, _wsearchenv_s