_searchenv, _wsearchenv
Utilise les chemins 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 avec /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
Paramètres
filename
Nom du fichier à rechercher.varname
Environnement dans lequel chercher.pathname
Mémoire tampon pour 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 toute variable dédinie par l'environnement ou par l'utilisateur —par exemple, PATH, LIB, ou INCLUDE—qui spécifie une liste de chemins d'accès aux répertoires. Comme _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. Si elle ne trouve pas le fichier, elle parcourt ensuite les répertoires spécifiés par la variable d'environnement. Si le fichier cible est dans un de ces répertoires, le chemin d'accès nouvellement créé est copié dans pathname. Si le fichier filename est introuvable, pathname contient une chaîne vide terminée par le caractère NULL.
La mémoire tampon pathname doit être longue d'au moins _MAX_PATH caractères afin de pouvoir contenir le chemin d'accès construit en entier. Sinon, _searchenv pourrait déborder la mémoire tampon pathname et provoquer un comportement inattendu.
_wsearchenv est une version à caractères larges de _searchenv ; et les arguments de _wsearchenv sont des chaînes à caractères larges. _wsearchenv et _searchenv se comportent sinon de manière identique.
Si filename est une chaîne vide, ces fonctions retournent ENOENT.
Si filename ou pathname est un pointeur NULL, le gestionnaire de paramètres non valides est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent -1 et attribuent à errno la valeur EINVAL.
Pour plus d'informations sur errno et les codes d'erreur, consultez errno, 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.
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 |
Configuration requise
Routine |
En-tête requis |
---|---|
_searchenv |
<stdlib.h> |
_wsearchenv |
<stdlib.h> ou <wchar.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité.
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 );
}
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de code non managé.