_searchenv, _wsearchenv

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Usa las rutas de acceso de entorno para buscar un archivo. Existen versiones más seguras de estas funciones; consulte _searchenv_s, _wsearchenv_s.

System_CAPS_ICON_important.jpg Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para más información, vea Funciones de CRT no admitidas 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 en el que se va a buscar.

pathname
Búfer en el que se va a almacenar la ruta de acceso completa.

Las rutina _searchenv busca el archivo de destino en el dominio especificado. La variable varname puede ser cualquier variable de entorno o definida por el usuario (por ejemplo, PATH, LIB o INCLUDE) que especifique una lista de rutas de acceso de directorio. Dado que _searchenv distingue entre mayúsculas y minúsculas, varname debe coincidir con las mayúsculas y minúsculas de la variable de entorno.

En primer lugar, la rutina busca el archivo en el directorio de trabajo actual. Si no lo encuentra aquí, lo busca en los directorios que especifica la variable de entorno. Si el archivo de destino está en uno de esos directorios, la ruta de acceso creada recientemente se copia en pathname. Si el archivo filename no se encuentra, pathname contiene una cadena vacía terminada en un valor nulo.

El búfer de pathname debe tener _MAX_PATH caracteres como mínimo, para dar cabida a todo el nombre de ruta de acceso creada. En caso contrario, _searchenv puede saturar el búfer de pathname y generar un comportamiento inesperado.

_wsearchenv es una versión de caracteres anchos de _searchenv, y los argumentos para _wsearchenv también son cadenas de caracteres anchos. Por lo demás, _wsearchenv y _searchenv se comportan de forma idéntica.

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

Si filename o pathname es una NULL se invoca el puntero, el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, estas funciones devuelven -1 y establecen errno en EINVAL.

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

En C++, estas funciones tienen sobrecargas de plantilla que invocan a los homólogos más recientes y seguros de dichas funciones. Para obtener más información, consulta Secure Template Overloads.

Asignaciones de rutina de texto genérico

Rutina Tchar.h_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tsearchenv_searchenv_searchenv_wsearchenv
RutinaEncabezado necesario
_searchenv<stdlib.h>
_wsearchenv<stdlib.h> o <wchar.h>

Para obtener más información sobre compatibilidad, vea Compatibility.

  
      // 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  

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

Control de directorio
getenv, _wgetenv
_putenv, _wputenv
_searchenv_s, _wsearchenv_s

Mostrar: