Программирование на C и C++

Онлайн справочник программиста на C и C++

findfirst, findnext

int findfirst(const char *fname, struct ffblk *ptr, int attrib)

int findnext( struct ffblk *ptr)

Прототип: 
Описание: 

Необходимо вклю­чить фaйл dos.h, который содержит макросы, используемые в качестве значения параметра attrib. Эти функции не определены стандартом ANSI С. Функция findfirst() ищет первое имя файла, соответствующее образцу поиска, на который ука­зывает параметр fname. Имя файла может включать в себя диск и путь. Также имя файла может включать в себя шаблоны поиска * и ?. При нахождении подходящего файла структура, на кото­рую указывает ptr, заполняется информацией об этом файле.

Структура ffblk определена для DOS следующим образом:

 

Структура ffblk определена для Windows следующим образом:

 

Параметр attrib определяет тип файлов, которые необходимо найти с помощью функции findfirst(). Если attrib имеет значение 0, то допустимыми являются все файлы, подходящие под шаблон поиска. Для того, чтобы обеспечить более селективный поиск, параметр attrib может при­нимать одно из значений, определяемых следующими макросами:

МакросЗначение
FA_RDONLYФайл только для чтения
FA_HIDDENСкрытый файл
FA_SYSTEMСистемный файл
FA_LABELМетка тома
FA_DIRECПодкаталог
FA_ARCHАрхивный файл

Функция findnext() продолжает поиск, начатый функцией findfirst().

Обе функции findfirst() и findnext() в случае успеха возвращают 0. В случае неудачи возвраща­ется — 1, а переменная errno устанавливается равной ENOENT (имя файла не найдено). Перемен­ная _doserrno устанавливается равной либо ENMFILE (нет больше файлов в каталоге), либо ENOENT.

Пример: