Partager via


_findfirst, , _findfirst32, _findfirst64, , _findfirsti64_wfindfirst64_wfindfirst64i32_wfindfirst_wfindfirst32i64_wfindfirst32_findfirst64i32_findfirst32i64_wfindfirsti64

Fournissent des informations sur la première instance d’un nom de fichier correspondant au fichier spécifié dans l’argument filespec.

Syntaxe

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
);

Paramètres

filespec
Spécification du fichier cible (peut inclure des caractères génériques).

fileinfo
Mémoire tampon des informations du fichier. Pour plus d’informations sur les fileinfo structs, consultez les remarques dans les fonctions de recherche de nom de fichier et consultez mappages de types de données. Les structs sont définis dans le même fichier d’en-tête que la fonction qui les utilise comme paramètre.

Valeur retournée

En cas de réussite, _findfirst retourne un handle de recherche unique identifiant le fichier ou le groupe de fichiers qui correspondent à la filespec spécification, qui peut être utilisé dans un appel ultérieur vers _findnext ou vers _findclose. Sinon, _findfirst retourne -1 et définit errno l’une des valeurs suivantes.

Valeur de la variable errno Condition
EINVAL Paramètre non valide : filespec ou fileinfo était NULL. Ou bien, le système d’exploitation a retourné une erreur inattendue.
ENOENT Spécification de fichier qui n’a pas pu être mis en correspondance.
ENOMEM Mémoire insuffisante.
EINVAL Spécification de nom de fichier non valide, ou le nom de fichier donné était plus long que MAX_PATH.

Pour plus d’informations sur ces codes de retour et d’autres codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno

Si un paramètre non valide est passé, ces fonctions appellent le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres.

Notes

Vous devez appeler une fois l’appel _findclose terminé avec la ou la _findnext _findfirst fonction (ou toutes les variantes) fournies à l’appel pour _findfirst réussir. _findclose libère les ressources utilisées par ces fonctions dans votre application. L’appel _findclose sur un handle non valide retourne -1 et définit la valeur errno EINVAL.

Les variantes de ces fonctions qui ont le w préfixe sont des versions à caractères larges ; sinon, elles sont identiques aux fonctions monooctets correspondantes.

Les variantes de ces fonctions prennent en charge les types d’heures 32 bits ou 64 bits, ainsi que les tailles de fichiers 32 bits ou 64 bits. Le premier suffixe numérique (32 ou 64) indique la taille du type d’heure ; le deuxième suffixe est i32 ou i64, et indique si la taille du fichier est représentée comme un entier 32 bits ou 64 bits. Pour plus d’informations sur les versions qui prennent en charge les tailles de fichiers et les types d’heures 32 bits et 64 bits, consultez le tableau suivant. Le i32 ou i64 le suffixe est omis s’il est identique à la taille du type de temps, il _findfirst64 prend également en charge les longueurs de fichier 64 bits et _findfirst32 prend uniquement en charge les longueurs de fichier 32 bits.

Ces fonctions utilisent différentes formes de la structure _finddata_t pour le paramètre fileinfo. Pour plus d’informations sur la structure, consultez les fonctions de recherche de nom de fichier.

Les variantes qui utilisent un type d’heure 64 bits permettent d’exprimer les dates de création de fichiers jusqu’au 31 décembre 3000 à 23:59:59, heure UTC. Ceux qui utilisent des types de temps 32 bits représentent uniquement les dates jusqu’à 23:59:59 janvier 18, 2038, UTC. Le 1er janvier 1970 à minuit est la limite inférieure de la plage de dates pour toutes ces fonctions.

Sauf si vous devez absolument utiliser les versions qui spécifient de manière explicite la taille de l’heure, utilisez _findfirst ou _wfindfirst ou, si vous avez besoin de prendre en charge des tailles de fichier supérieures à 3 Go, utilisez _findfirsti64 ou _wfindfirsti64. Toutes ces fonctions utilisent le type d’heure 64 bits. Dans les versions antérieures, ces fonctions utilisaient un type d’heure 32 bits. Si cette modification est une modification cassant pour une application, vous pouvez définir _USE_32BIT_TIME_T pour revenir à l’ancien comportement. Si _USE_32BIT_TIME_T est défini, _findfirst, _findfirsti64 et les versions Unicode correspondantes utilisent une heure 32 bits.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Variantes de type d’heure et de type de longueur de fichier de _findfirst

Functions _USE_32BIT_TIME_T défini ? Type de temps Type de longueur de fichier
_findfirst, _wfindfirst Non défini 64 bits 32 bits
_findfirst, _wfindfirst Défini 32 bits 32 bits
_findfirst32, _wfindfirst32 Non affecté par la définition de macro 32 bits 32 bits
_findfirst64, _wfindfirst64 Non affecté par la définition de macro 64 bits 64 bits
_findfirsti64, _wfindfirsti64 Non défini 64 bits 64 bits
_findfirsti64, _wfindfirsti64 Défini 32 bits 64 bits
_findfirst32i64, _wfindfirst32i64 Non affecté par la définition de macro 32 bits 64 bits
_findfirst64i32, _wfindfirst64i32 Non affecté par la définition de macro 64 bits 32 bits

Mappages de routines de texte générique

Routine Tchar.h _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tfindfirst _findfirst _findfirst _wfindfirst
_tfindfirst32 _findfirst32 _findfirst32 _wfindfirst32
_tfindfirst64 _findfirst64 _findfirst64 _wfindfirst64
_tfindfirsti64 _findfirsti64 _findfirsti64 _wfindfirsti64
_tfindfirst32i64 _findfirst32i64 _findfirst32i64 _wfindfirst32i64
_tfindfirst64i32 _findfirst64i32 _findfirst64i32 _wfindfirst64i32

Spécifications

Fonction En-tête requis
_findfirst <io.h>
_findfirst32 <io.h>
_findfirst64 <io.h>
_findfirsti64 <io.h>
_findfirst32i64 <io.h>
_findfirst64i32 <io.h>
_wfindfirst <io.h> ou <wchar.h>
_wfindfirst32 <io.h> ou <wchar.h>
_wfindfirst64 <io.h> ou <wchar.h>
_wfindfirsti64 <io.h> ou <wchar.h>
_wfindfirst32i64 <io.h> ou <wchar.h>
_wfindfirst64i32 <io.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Voir aussi

Appels système
Fonctions de recherche de nom de fichier