_searchenv, _wsearchenv

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

Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución.Para obtener 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.

Comentarios

Las rutina _searchenv busca 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 las mayúsculas y minúsculas 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 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. 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. Por lo demás, _wsearchenv y _searchenv se comportan de forma idéntica.

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

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

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

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 seguras.

Asignaciones de rutina de texto genérico

Rutina 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, use 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