_searchenv, _wsearchenv
Utilise les chemins d'environnement pour rechercher un fichier.Les versions 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 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 à rechercher.pathname
Mémoire tampon pour stocker le chemin d'accès complet.
Notes
Les recherches de routine d' _searchenv pour le fichier cible dans le champ spécifié.La variable d' varname peut être tout l'environnement ou définie par l'utilisateur variable- pour l'exemple, l' PATH, l' LIB, ou l' INCLUDE)qui spécifie une liste de chemins d'accès du répertoire.Étant donné qu' _searchenv respecte la casse, varname doit correspondre le cas de la variable d'environnement.
Routine de recherche d'abord pour le fichier dans le répertoire de travail actuel.S'il ne trouve pas le fichier, il recherche dans les répertoires spécifiés par la variable d'environnement.Si le fichier cible est dans un de ces dossiers, le chemin d'accès de création récente est copié dans pathname.Si le fichier d' filename est introuvable, pathname contient une chaîne terminée par le caractère NULL vide.
La mémoire tampon d' pathname doit être au moins des caractères d' _MAX_PATH de temps pour s'adapter à l'entier le chemin d'accès construit.Sinon, _searchenv peut provoquer un mémoire tampon d' pathname et provoquer un comportement inattendu.
_wsearchenv est une version à caractère élargi d' _searchenv, et les arguments à _wsearchenv sont des chaînes à caractères larges._wsearchenv et _searchenv se comportent de sinon.
Si filename est une chaîne vide, ces fonctions ENOENTde retour.
Si filename ou pathname est un pointeur d' NULL, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, ces fonctions retournent -1 et affectez errno à EINVAL.
Pour plus d'informations sur errno et codes d'erreur, consultez l' constantes d'errno.
En C++, ces fonctions ont des surcharges de modèle qui appellent des équivalents plus récentes et plus sûres de ces fonctions.Pour plus d'informations, consultez Surcharges sécurisées de modèle.
Mappages de routines de texte générique
Routine de Tchar.h |
_UNICODE et non définis _MBCS |
_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 de 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é.