_searchenv, _wsearchenv

Usa i percorsi di ambiente per cercare un file. Sono disponibili versioni più sicure di queste funzioni; vedere _searchenv_s, _wsearchenv_s.

Importante

Non è possibile usare questa API nelle applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).

Sintassi

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

Parametri

filename
Nome del file di cui eseguire la ricerca.

varname
Ambiente per la ricerca.

pathname
Buffer per l'archiviazione del percorso completo.

Osservazioni:

La routine _searchenv cerca il file di destinazione nel dominio specifico. La variabile varname può essere qualsiasi ambiente o variabile definita dall'utente, ad esempio, PATH, LIB o INCLUDE, che specifica un elenco dei percorsi di directory. Poiché _searchenv fa distinzione tra maiuscole e minuscole, varname deve corrispondere alle maiuscole e minuscole della variabile d'ambiente.

La routine cerca innanzitutto il file nella directory di lavoro corrente. Se il file non viene trovato, esamina le directory specificate dalla variabile di ambiente. Se il file di destinazione si trova in una di queste directory, il percorso appena creato viene copiato in pathname. Se il filename file non viene trovato, pathname contiene una stringa vuota con terminazione Null.

Il buffer pathname deve contenere almeno _MAX_PATH caratteri per consentire tutta la lunghezza del nome percorso completo. In alternativa, _searchenv potrebbe causare un sovraccarico del buffer pathname e causare un comportamento imprevisto.

_wsearchenv è una versione a caratteri wide di _searchenv e argomenti per _wsearchenv sono stringhe a caratteri wide. In caso contrario,_wsearchenv e _searchenv si comportano in modo identico.

Se filename è una stringa vuota, queste funzioni restituiscono ENOENT.

Se filename o pathname è un NULL puntatore, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni restituiscono -1 e impostano errno su EINVAL.

Per altre informazioni sui errno codici di errore e , vedere errno costanti.

In C++, queste funzioni presentano overload di modello che richiamano le relative controparti più sicure e più recenti. Per altre informazioni, vedere Proteggere gli overload dei modelli.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

Routine Tchar.h _UNICODE e _MBCS non definito _MBCS Definito _UNICODE Definito
_tsearchenv _searchenv _searchenv _wsearchenv

Requisiti

Ciclo Intestazione obbligatoria
_searchenv <stdlib.h>
_wsearchenv <stdlib.h> o <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// 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

Vedi anche

Controllo directory
getenv, _wgetenv
_putenv, _wputenv
_searchenv_s, _wsearchenv_s