_searchenv
, _wsearchenv
Utilise des chemins d’accès d’environnement pour rechercher un fichier. Des versions plus sécurisées de ces fonctions sont disponibles. Consultez _searchenv_s
, _wsearchenv_s
.
Important
Cette API ne peut pas être utilisée dans les applications qui s’exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.
Syntaxe
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
Paramètres
filename
Nom du fichier à rechercher.
varname
Environnement dans lequel effectuer la recherche.
pathname
Mémoire tampon destinée à stocker le chemin d’accès complet.
Notes
La routine _searchenv
recherche le fichier cible dans le domaine spécifié. La variable varname
peut être un environnement ou une variable définie par l'utilisateur quelconque, par exemple, PATH
, LIB
ou INCLUDE
, qui spécifie une liste de chemins d'accès de répertoires. Sachant que _searchenv
respecte la casse, varname
doit correspondre à la casse de la variable d'environnement.
La routine recherche d'abord le fichier dans le répertoire de travail actuel. S’il ne trouve pas le fichier, il examine les répertoires spécifiés par la variable d’environnement. Si le fichier cible se trouve dans l'un de ces répertoires, le chemin d'accès qui vient d'être créé est copié dans pathname
. Si le filename
fichier est introuvable, pathname
contient une chaîne vide terminée par null.
La mémoire tampon pathname
doit faire une longueur minimale de _MAX_PATH
caractères pour loger le nom de chemin d'accès construit dans son intégralité. Sinon, _searchenv
risque de saturer la mémoire tampon pathname
et occasionner un comportement inattendu.
_wsearchenv
est une version à caractères larges de _searchenv
, et les arguments de _wsearchenv
sont des chaînes à caractères larges. Sinon,_wsearchenv
et _searchenv
se comportent de la même façon.
Si filename
est une chaîne vide, ces fonctions retournent ENOENT
.
Si filename
ou pathname
est un NULL
pointeur, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent -1 et définissent errno
avec la valeur EINVAL
.
Pour plus d’informations sur les codes d’erreur errno
et les codes d’erreur, consultez errno
les constantes.
En C++, ces fonctions ont des surcharges de modèle qui appellent les équivalents plus récents et plus sécurisés de ces fonctions. Pour plus d'informations, consultez Sécuriser les surcharges de modèle.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine Tchar.h | _UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tsearchenv |
_searchenv |
_searchenv |
_wsearchenv |
Spécifications
Routine | En-tête requis |
---|---|
_searchenv |
<stdlib.h> |
_wsearchenv |
<stdlib.h> ou <wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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
Voir aussi
Contrôle d’annuaire
getenv
, _wgetenv
_putenv
, _wputenv
_searchenv_s
, _wsearchenv_s