Condividi tramite


_searchenv, _wsearchenv

Utilizza i percorsi dell'ambiente per trovare un file. Sono disponibili versioni più sicure di queste funzioni. Vedere _searchenv_s, _wsearchenv_s.

Importante

Questa API non può essere utilizzata nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /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

Parametri

  • filename
    Nome del file da ricercare.

  • varname
    Ambiente da cercare.

  • pathname
    Buffer per archiviare il percorso completo.

Note

La routine _searchenv cerca il file di destinazione nel dominio specificato. La variabile varname può essere qualsiasi variabile dell'ambiente o definita dall'utente - esempio, PATH, LIB, o INCLUDE - che specifica una lista di percorsi delle cartelle. Poiché _searchenv fa distinzione tra maiuscole e minuscole, varname deve corrispondere alla variabile d'ambiente.

La routine cerca innanzitutto il file nella cartella di lavoro corrente. Se non trova il file, cerca quindi nelle directory specificate dalla variabile d'ambiente. Se il file di destinazione è in una di quelle directory, il percorso appena creato viene copiato in pathname. Se il file filename non viene trovato, pathname contiene una stringa vuota con terminazione null.

Il buffer pathname deve essere lungo almeno _MAX_PATH caratteri per contenere l'intera lunghezza del nome del percorso costruito. In caso contrario, _searchenv potrebbe sovraccaricare il buffer di pathname e causare un comportamento imprevisto.

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

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

Se filename o pathname è un NULL puntatore null, viene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione restituisce -1 e imposta errno su EINVAL.

Per ulteriori informazioni su errno e codici di errore, consultare Costanti errno.

In C++, queste funzioni presentano overload di modelli che richiamano le relative controparti più sicure e più recenti. Per ulteriori informazioni, vedere Overload di modelli sicuri.

Mapping di routine di testo generico

Routine Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tsearchenv

_searchenv

_searchenv

_wsearchenv

Requisiti

Routine

Intestazione obbligatoria

_searchenv

<stdlib.h>

_wsearchenv

<stdlib.h> o <wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere 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 );
}
  

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.

Vedere anche

Riferimenti

Controllo Directory

getenv, _wgetenv

_putenv, _wputenv

_searchenv_s, _wsearchenv_s