Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования
Скачать 3.41 Mb.
|
findfirst----------------------------------------------------------------- Назначение Выполняет поиск в каталоге. Синтаксис #include #include int findfirst(const char *pathname, struct ffblk *ffblk, int attrib); Прототип в dir.h Замечания findfirst начинает поиск в каталоге диска, используя системный вызов Ox4E MS-DOS. pathname - строка, содержащая спецификацию уст- ройства (необязательно), маршрут доступа и имя файла, который ищется. В части имени файла мо- гут содержаться символы универсального сопос- тавления (такие, как ? или *). Если подходящий файл найден, то ffblk заполняется информацией о файле. Формат структуры ffblk следующий: struct ffblk { char ff_reserved[21]; /* резервируется DOS*/ char ff_attrib; /* найденный атрибут */ int ff_ftime; /* время создания файла */ int ff_fdate; /* дата создания файла */ long ff_fsize; /* размер файла */ char ff_name[13]; /* имя найденного файла */ }; attrib - байт файлового атрибута MS-DOS, ис- пользуемый при выборе файлов при поиске. Он мо- жет быть равен одной из констант, определенных в dos.h: FA_RDONLY - атрибут "только чтение" FA_HIDDEN - скрытый файл FA_SYSTEM - системный файл FA_LABEL - метка тома FA_DIREC - каталог FA_ARCH - архив Для получения более детальной информации о дан- ных aтрибутах следует обратиться к "Руководству программиста MS-DOS". Отметим, что findfirst устанавливает значение адреса DTA равным адресу ffblk. Если вам понадобится это значение DTA, то вы должны сохранять его и затем восстанавливать (используя getdta и setdta) после каждого обра- щения к findfirst. Возвращаемое findfirst возвращает 0 при успешном поиске значение файлов, удовлетворяющих условиям pathname. Ког- да нет таких файлов или допущена ошибка в имени файла, то возвращается -1, и глобальная пере- менная errno становится равной одной из следую- щих констант: ENOENT - маршрут или имя файла не найдено ENMFILE - нет больше файлов Переносимость Уникальна для MS-DOS. Смотри также findnext Пример #include #include main() { struct ffblk *ffblk; int done; printf("Каталог для *.*\n"); done = findfirst("*.*",&ffblk,0); while (!done) { printf(" %s\n", ffblk.ff_name); done = findnext(&ffblk); } } Результат выполнения программы Каталог для *.* FINDFRST.C FINDFRST.OBJ FINDFRST.MAP FINDFRST.EXE ----------------------------------------------------------------- findnext----------------------------------------------------------------- Назначение Извлекает имена файлов, соответствующие findfirst. Синтаксис #include int findnext(struct ffblk *ffblk); Прототип в dir.h Замечания findnext используется для последовательного извлечения файлов, которые удовлетворяют усло- вию pathname, задаваемому в findfirst. ffblk - это тот же блок, что и в вызове findfirst. Этот блок содержит необходимую информацию для про- должения поиска. Для каждого вызова findnext возвращается одно имя файла, удовлетворяющего условиям поиска, заданным pathname, пока такие файлы есть. Отметим, что findnext устанавливает значение адреса DTA равным адресу ffblk. Если вам нужно это значение DTA, то вы должны сохранять его и затем восстанавливать (исполь- зуя getdta и setdta) после каждого обращения к findnext. Возвращаемое findnext возвращает 0 при успешном поиске значение файлов, удовлетворяющих условиям pathname. Ког- да нет таких файлов или допущена ошибка в имени файла, то возвращается -1, и глобальная пере- менная errno становится равной одной из следую- щих констант: ENOENT - маршрут или имя файла не найдено ENMFILE - нет больше файлов Переносимость Уникальна для MS-DOS. Смотри также findfirst Пример Смотри findfirst ----------------------------------------------------------------- |