_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.
![]() |
---|
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.