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