Udostępnij za pośrednictwem


_findfirst, _findfirst32, , , _findfirst64i32_wfindfirst32i64_findfirsti64_wfindfirst64i32_findfirst64_wfindfirst_wfindfirst32_wfindfirst64_findfirst32i64_wfindfirsti64

Podaj informacje o pierwszym wystąpieniu nazwy pliku zgodnego z plikiem określonym w argumencie filespec .

Składnia

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

Parametry

filespec
Specyfikacja pliku docelowego (może zawierać symbole wieloznaczne).

fileinfo
Bufor informacji o pliku. Aby uzyskać więcej informacji na temat fileinfo struktur, zobacz Uwagi w funkcjach wyszukiwania nazw plików i zobacz Mapowania typów danych. Struktury są definiowane w tym samym pliku nagłówka co funkcja, która używa ich jako parametru.

Wartość zwracana

Jeśli operacja powiedzie się, _findfirst zwraca unikatowy uchwyt wyszukiwania identyfikujący plik lub grupę plików, które są zgodne filespec ze specyfikacją, która może być używana w kolejnym wywołaniu metody _findnext lub do _findclose. _findfirst W przeciwnym razie zwraca wartość -1 i ustawia errno na jedną z następujących wartości.

wartość errno Stan
EINVAL Nieprawidłowy parametr: filespec lub fileinfo miał wartość NULL. Lub system operacyjny zwrócił nieoczekiwany błąd.
ENOENT Specyfikacja pliku, której nie można dopasować.
ENOMEM Za mało pamięci.
EINVAL Nieprawidłowa specyfikacja nazwy pliku lub podana nazwa pliku była większa niż MAX_PATH.

Aby uzyskać więcej informacji na temat tych i innych kodów powrotnych, zobacz errno, _doserrno, _sys_errlisti _sys_nerr.

Jeśli przekazano nieprawidłowy parametr, te funkcje wywołują nieprawidłową procedurę obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów.

Uwagi

Wywołanie należy wywołać _findclose po zakończeniu _findfirst pracy z funkcją lub _findnext (lub dowolnymi wariantami) pod warunkiem pomyślnego wywołania _findfirst . _findclose zwalnia zasoby używane przez te funkcje w aplikacji. Wywołanie _findclose nieprawidłowego uchwytu zwraca wartość -1 i ustawia errno wartość EINVAL.

Odmiany tych funkcji, które mają w prefiks, to wersje szerokiego znaku; w przeciwnym razie są identyczne z odpowiednimi funkcjami jednobajtowych.

Odmiany tych funkcji obsługują typy czasu 32-bitowego lub 64-bitowego oraz 32-bitowe lub 64-bitowe rozmiary plików. Pierwszy sufiks liczbowy (32 lub 64) wskazuje rozmiar typu czasu; drugi sufiks to i32 lub i64, i wskazuje, czy rozmiar pliku jest reprezentowany jako 32-bitowa lub 64-bitowa liczba całkowita. Aby uzyskać informacje o tym, które wersje obsługują 32-bitowe i 64-bitowe typy czasu i rozmiary plików, zobacz poniższą tabelę. Sufiks i32 lub i64 jest pomijany, jeśli jest taki sam jak rozmiar typu czasu, dlatego _findfirst64 obsługuje również 64-bitowe długości plików i _findfirst32 obsługuje tylko 32-bitowe długości plików.

Te funkcje używają różnych form _finddata_t struktury dla parametru fileinfo . Aby uzyskać więcej informacji na temat struktury, zobacz Funkcje wyszukiwania nazw plików.

Odmiany używające typu czasu 64-bitowego umożliwiają wyrażenia dat tworzenia plików do 23:59:59, 31 grudnia 3000, UTC. Te, które używają 32-bitowych typów czasu, reprezentują daty tylko do 23:59:59 stycznia 18, 2038, UTC. Północ, 1 stycznia 1970 r., jest dolną granicą zakresu dat dla wszystkich tych funkcji.

Jeśli nie masz określonej przyczyny użycia wersji, które jawnie określają rozmiar czasu, użyj _findfirst polecenia lub _wfindfirst , jeśli musisz obsługiwać rozmiary plików większe niż 3 GB, użyj lub _findfirsti64 _wfindfirsti64. Wszystkie te funkcje używają typu czasu 64-bitowego. We wcześniejszych wersjach te funkcje używały typu czasu 32-bitowego. Jeśli ta zmiana dotyczy zmiany powodującej niezgodność dla aplikacji, możesz zdefiniować _USE_32BIT_TIME_T , aby przywrócić stare zachowanie. Jeśli _USE_32BIT_TIME_T jest zdefiniowana wartość , _findfirst, _findfirsti64i ich odpowiednie wersje Unicode używają czasu 32-bitowego.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Odmiany typu czasu i typu długości pliku _findfirst

Funkcje _USE_32BIT_TIME_T zdefiniowany? Typ godziny Typ długości pliku
_findfirst, _wfindfirst Nieokreślona 64-bitowa 32-bitowa
_findfirst, _wfindfirst Zdefiniowane 32-bitowa 32-bitowa
_findfirst32, _wfindfirst32 Nie ma to wpływu na definicję makra 32-bitowa 32-bitowa
_findfirst64, _wfindfirst64 Nie ma to wpływu na definicję makra 64-bitowa 64-bitowa
_findfirsti64, _wfindfirsti64 Nieokreślona 64-bitowa 64-bitowa
_findfirsti64, _wfindfirsti64 Zdefiniowane 32-bitowa 64-bitowa
_findfirst32i64, _wfindfirst32i64 Nie ma to wpływu na definicję makra 32-bitowa 64-bitowa
_findfirst64i32, _wfindfirst64i32 Nie ma to wpływu na definicję makra 64-bitowa 32-bitowa

Mapowania procedur tekstu ogólnego

Tchar.h rutyna _UNICODE i _MBCS niezdefiniowane _MBCS zdefiniowany _UNICODE zdefiniowany
_tfindfirst _findfirst _findfirst _wfindfirst
_tfindfirst32 _findfirst32 _findfirst32 _wfindfirst32
_tfindfirst64 _findfirst64 _findfirst64 _wfindfirst64
_tfindfirsti64 _findfirsti64 _findfirsti64 _wfindfirsti64
_tfindfirst32i64 _findfirst32i64 _findfirst32i64 _wfindfirst32i64
_tfindfirst64i32 _findfirst64i32 _findfirst64i32 _wfindfirst64i32

Wymagania

Function Wymagany nagłówek
_findfirst <io.h>
_findfirst32 <io.h>
_findfirst64 <io.h>
_findfirsti64 <io.h>
_findfirst32i64 <io.h>
_findfirst64i32 <io.h>
_wfindfirst <io.h> lub <wchar.h>
_wfindfirst32 <io.h> lub <wchar.h>
_wfindfirst64 <io.h> lub <wchar.h>
_wfindfirsti64 <io.h> lub <wchar.h>
_wfindfirst32i64 <io.h> lub <wchar.h>
_wfindfirst64i32 <io.h> lub <wchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Zobacz też

Wywołania systemowe
Funkcje wyszukiwania nazw plików