CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
findfirst
findfirst
Функция Просматривает каталог диска.
Синтаксис #include<dir.h>
#include<dos.h>
int findfirst(char * pathname, struct ffblk
* ffblk, int attrib);
Файл, содержищий dir.h
прототип
Описание Функция findfirst производит поиск в каталоге диска
посредством системного вызова DOS 0x4E.
Параметр pathname представляет собой символьную
строку, содержащую необязательную спецификацию
дискового устройства, маршрут поиска и имя искомого
файла. Имя файла может содержать шаблоны (такие как
? или *). Если соответствующий файл найден,
структура ffblk заполняется информацией о файле и
каталоге, его содержащем.
Cтруктура ffblk определена следующим образом:
struct ffblk {
char ff_reserved[21]; /* зарезервировано DOS */
char ff_attrib; /* атрибуты */
int ff_ftime; /* время */
int ff_fdate; /* дата */
long ff_fsize; /* размер */
char ff_fname[13]; /* имя файла */
};
Параметр attrib - это используемый в MS-DOS байт
атрибута файла, который употребляется при выборе
подходящих для поиска файлов. Параметр attrib может
быть одной из следующих определенных в файле dos.h
констант:
FA_RDONLY - Атрибут "только чтение".
FA_HIDDEN - Скрытый файл.
FA_SYSTEM - Системный файл.
FA_LABEL - Метка тома.
FA_DIREC - Каталог.
FA_ARCH - Архив.
Более подробную информацию об этих атрибутах вы
найдете в документе "Справочное руководство
программиста по DOS".
Отметим, что ff_ftime и ff_fdate содержат битовые
поля для определения даты и времени. Эти структуры
поддерживаются DOS. Обе 16-битовые структуры
делятся на 3 поля:
ff_ftime:
биты 0-4 Секунды, деленные на 2. (т.е. 10
соответствует 20 секундам).
биты 5-10 минуты
ьиты 11-15 часы
ff_fdate:
биты 0-4 день
биты 5-8 месяц
биты 9-15 год с 1980 (т.е. 9 соответствует 1989)
Структура ftime объявленная в io.h, использует поля
времени и даты соответствующие этом. Смотрите
функции getftime и setftime.
Возвращаемое При успешном завершении, то есть при успешном
значение поиске файла, соответствующего параметру pathname,
функция findfirst возвращает значение 0. Если
подходящих файлов больше не существует, или в имени
файла допущена ошибка, функция возвращают значение
-1 и глобальная переменная errno получает одно из
следующих значений:
ENOENT - Маршрут доступа или имя файла не найдены.
а переменной doserrno присваивается одно из
следующих значений:
ENOENT - Маршрут доступа или имя файла не найдены.
ENMFILE - Нет больше файлов.
Переносимость Функция уникальна для DOS.
Смотрите также findnext.
Пример:
#include <stdio.h>
#include <dir.h>
int main(void)
{
struct ffblk ffblk;
int done;
printf("Листинг каталога *.*\n");
done = findfirst(**.**,&ffblk,0);
while (!done) {
printf(" %s\n", ffblk.ff_name);
done = findnext(&ffblk);
}
return 0;
}
Результат:
Листинг каталога *.*
FINDFRST.C
FINDFRST.OBJ
FINDFRST.MAP
FINDFRST.EXE
Оставить комментарий
Комментарии
1.


6 апреля 2011, 14:42:57
в хинд stdlib исчите её теперь
