_findfirst, _findfirst32, _findfirst32i64, _findfirst64, _findfirst64i32, _findfirsti64, _wfindfirst, _wfindfirst32, _wfindfirst32i64, _wfindfirst64, _wfindfirst64i32, _wfindfirsti64

Proporcione información sobre la primera instancia de un nombre de archivo que coincide con el archivo especificado en el argumento filespec.

Sintaxis

intptr_t _findfirst(
   const char *filespec,
   struct _finddata_t *fileinfo
);
intptr_t _findfirst32(
   const char *filespec,
   struct _finddata32_t *fileinfo
);
intptr_t _findfirst64(
   const char *filespec,
   struct _finddata64_t *fileinfo
);
intptr_t _findfirsti64(
   const char *filespec,
   struct _finddatai64_t *fileinfo
);
intptr_t _findfirst32i64(
   const char *filespec,
   struct _finddata32i64_t *fileinfo
);
intptr_t _findfirst64i32(
   const char *filespec,
   struct _finddata64i32_t *fileinfo
);
intptr_t _wfindfirst(
   const wchar_t *filespec,
   struct _wfinddata_t *fileinfo
);
intptr_t _wfindfirst32(
   const wchar_t *filespec,
   struct _wfinddata32_t *fileinfo
);
intptr_t _wfindfirst64(
   const wchar_t *filespec,
   struct _wfinddata64_t *fileinfo
);
intptr_t _wfindfirsti64(
   const wchar_t *filespec,
   struct _wfinddatai64_t *fileinfo
);
intptr_t _wfindfirst32i64(
   const wchar_t *filespec,
   struct _wfinddata32i64_t *fileinfo
);
intptr_t _wfindfirst64i32(
   const wchar_t *filespec,
   struct _wfinddata64i32_t *fileinfo
);

Parámetros

filespec
Especificación de archivo de destino (puede incluir caracteres comodín).

fileinfo
Búfer de información de archivo.

Valor devuelto

Si se realiza correctamente, _findfirst devuelve un identificador de búsqueda exclusivo que identifica el archivo o grupo de archivos que coinciden con la especificación filespec, que puede usarse en una llamada posterior a _findnext o _findclose. De lo contrario, _findfirst devuelve -1 y establece errno en uno de los valores siguientes.

Valor de errno Condición
EINVAL Parámetro no válido: filespec o fileinfo era NULL. O bien, el sistema operativo ha devuelto un error inesperado.
ENOENT Especificación de archivo que no se pudo coincidir.
ENOMEM Memoria suficiente.
EINVAL Especificación del nombre de archivo no válido o el nombre de archivo indicado era mayor que MAX_PATH.

Para obtener más información sobre estos y otros códigos de retorno, vea errno, _doserrno, _sys_errlist y _sys_nerr.

Si se pasa un parámetro no válido, estas funciones invocan al controlador de parámetros no válidos, como se describe en Validación de parámetros.

Comentarios

Debe llamar _findclose a después de que haya terminado con la _findfirst función o _findnext (o cualquier variante) siempre que la llamada se _findfirst realice correctamente. _findclose libera recursos usados por estas funciones en la aplicación. La llamada a _findclose en un identificador no válido devuelve -1 y establece en errnoEINVAL.

Las variaciones de estas funciones que tienen el w prefijo son versiones de caracteres anchos; de lo contrario, son idénticas a las funciones de un solo byte correspondientes.

Las variaciones de estas funciones admiten tipos de tiempo de 32 o 64 bits y tamaños de archivos de 32 o 64 bits. El primer sufijo numérico (32 o 64) indica el tamaño del tipo de tiempo usado; el segundo sufijo es i32 o i64, lo que indica si el tamaño del archivo se representa como un entero de 32 o 64 bits. Para obtener información sobre las versiones que admiten tipos de tiempo y tamaños de archivo de 32 bits y 64 bits, consulte la tabla siguiente. El i32 sufijo o i64 se omite si es el mismo que el tamaño del tipo de tiempo, por lo que _findfirst64 también admite longitudes de archivo de 64 bits y _findfirst32 solo admite longitudes de archivo de 32 bits.

Estas funciones usan diversas formas de la estructura _finddata_t para el parámetro fileinfo. Para obtener más información sobre la estructura, vea Funciones de búsqueda de nombre de archivo.

Las variaciones que usan un tipo de tiempo de 64 bits permiten expresar fechas de creación de archivos hasta las 23:59:59 horas del 31 de diciembre de 3000, UTC. Los que usan tipos de tiempo de 32 bits representan solo fechas a las 23:59:59: 18 de enero de 2038, UTC. La medianoche del 1 de enero de 1970 es el límite inferior del intervalo de fechas para todas estas funciones.

A menos que tenga una razón concreta para usar las versiones que especifican el tamaño de tiempo de forma explícita, use _findfirst o _wfindfirst; si tiene que admitir tamaños de archivo de más de 3 GB, use _findfirsti64 o _wfindfirsti64. Todas estas funciones usan el tipo de tiempo de 64 bits. En versiones anteriores, estas funciones usan un tipo de tiempo de 32 bits. Si este cambio es un cambio importante para una aplicación, puede definir _USE_32BIT_TIME_T para revertir al comportamiento anterior. Si se define _USE_32BIT_TIME_T, _findfirst, _finfirsti64 y sus correspondientes versiones Unicode usan un tiempo de 32 bits.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Variaciones de tipo de tiempo y tipo de longitud de archivo de _findfirst

Functions ¿Se ha definido _USE_32BIT_TIME_T? Tipo de tiempo Tipo de longitud de archivo
_findfirst, _wfindfirst No definida 64 bits 32 bits
_findfirst, _wfindfirst Definido 32 bits 32 bits
_findfirst32, _wfindfirst32 No se ve afectada por la definición de macro 32 bits 32 bits
_findfirst64, _wfindfirst64 No se ve afectada por la definición de macro 64 bits 64 bits
_findfirsti64, _wfindfirsti64 No definida 64 bits 64 bits
_findfirsti64, _wfindfirsti64 Definido 32 bits 64 bits
_findfirst32i64, _wfindfirst32i64 No se ve afectada por la definición de macro 32 bits 64 bits
_findfirst64i32, _wfindfirst64i32 No se ve afectada por la definición de macro 64 bits 32 bits

Asignaciones de rutinas de texto genérico

Rutina Tchar.h _UNICODE y _MBCS no definidos _MBCS definido _UNICODE definido
_tfindfirst _findfirst _findfirst _wfindfirst
_tfindfirst32 _findfirst32 _findfirst32 _wfindfirst32
_tfindfirst64 _findfirst64 _findfirst64 _wfindfirst64
_tfindfirsti64 _findfirsti64 _findfirsti64 _wfindfirsti64
_tfindfirst32i64 _findfirst32i64 _findfirst32i64 _wfindfirst32i64
_tfindfirst64i32 _findfirst64i32 _findfirst64i32 _wfindfirst64i32

Requisitos

Función Encabezado necesario
_findfirst <io.h>
_findfirst32 <io.h>
_findfirst64 <io.h>
_findfirsti64 <io.h>
_findfirst32i64 <io.h>
_findfirst64i32 <io.h>
_wfindfirst <io.h> o <wchar.h>
_wfindfirst32 <io.h> o <wchar.h>
_wfindfirst64 <io.h> o <wchar.h>
_wfindfirsti64 <io.h> o <wchar.h>
_wfindfirst32i64 <io.h> o <wchar.h>
_wfindfirst64i32 <io.h> o <wchar.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Consulte también

Llamadas del sistema
Funciones de búsqueda de nombre de archivo