_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_errlist
i _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
, _findfirsti64
i 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ść.