Compartir a través de


_searchenv, _wsearchenv

Utiliza las rutas del entorno para buscar un archivo.Versiones más seguras de estas funciones están disponibles; vea _searchenv_s, _wsearchenv_s.

Nota importanteImportante

Esta API no se puede utilizar en las aplicaciones que se ejecutan en Windows en tiempo de ejecución.Para obtener más información, vea Funciones CRT no compatibles 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

Parámetros

  • filename
    Nombre del archivo que se va a buscar.

  • varname
    Entorno para buscar.

  • pathname
    Búfer para almacenar la ruta completa.

Comentarios

Las búsquedas de la rutina de _searchenv para el archivo de destino en el dominio especificado.La variable de varname puede ser cualquier entorno o definido por el usuario variable- para el ejemplo, PATH, LIB, o INCLUDE— que especifica una lista de rutas de acceso de directorio.Dado que _searchenv distingue entre mayúsculas y minúsculas, varname debe coincidir con el caso de la variable de entorno.

De la rutina busca primero el archivo en el directorio de trabajo actual.Si no encuentra el archivo, busca a través de los directorios especificados por la variable de entorno.Si el archivo de destino está en uno de esos directorios, la ruta creada recientemente se copia en pathname.Si el archivo de filename no se encuentra, pathname contiene una cadena terminada en null vacía.

El búfer de pathname debe ser por lo menos caracteres de _MAX_PATH long para alojar el entero del nombre de ruta construido.Si no, _searchenv puede saturar el búfer de pathname y provocar un comportamiento inesperado.

_wsearchenv es una versión con caracteres anchos de _searchenv, y los argumentos de _wsearchenv son cadenas de caracteres._wsearchenv y _searchenv se comportan exactamente igual de otra manera.

Si filename es una cadena vacía, estas funciones ENOENT return.

Si filename o pathname es un puntero de NULL, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, estas funciones devuelven -1 y errno establecido en EINVAL.

Para obtener más información sobre errno y códigos de error, vea constantes de errno.

En C++, estas funciones tienen sobrecargas de plantilla que se invoque los más recientes, más seguros homólogos de estas funciones.Para obtener más información, vea Sobrecargas de plantilla de seguridad.

Asignaciones de la rutina de Genérico- texto

Rutina de Tchar.h

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tsearchenv

_searchenv

_searchenv

_wsearchenv

Requisitos

Rutina

Encabezado necesario

_searchenv

<stdlib.h>

_wsearchenv

<stdlib.h> o <wchar.h>

Para obtener más información de compatibilidad, vea Compatibilidad.

Ejemplo

// 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 en .NET Framework

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Vea también

Referencia

Control de directorio

getenv, _wgetenv

_putenv, _wputenv

_searchenv_s, _wsearchenv_s