Share via


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

Voir aussi

Référence

Contrôle de répertoire

getenv, _wgetenv

_putenv, _wputenv

_searchenv_s, _wsearchenv_s