findfirst

 Функция            Просматривает директорию диска.

 Синтаксис          #include
                    #include
                    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 - маршрут доступа или имя файла не найде-
                             ны;
                    ENMFILE - нет больше файлов.

 Переносимость      Функция уникальна для DOS.

 Смотрите также     findnext

 Пример:

 #include 
 #include 

 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