ВУЗ:
Составители:
11
При вызове функции opendir(argv[1]) отрывается каталог, имя кото-
рого задается строкой переданной через первый параметр командной строки при
запуске программы. При нормальном завершении функция возвращает указатель
на первую запись каталога dir_ds. При ошибочном завершении возвращается
значение указателя NULL и выводится сообщение об ошибке. Далее организуется
цикл последовательного просмотра записей каталога
. Цикл завершается, когда
функция чтения записи каталога возвращает значение NULL. При каждом вы-
полнении цикла считывается очередная запись каталога. Эта запись помещается
в структуру, доступ к которой выполняется по указателю *mydir. После этого
выводятся имя файла (mydir->d_name) и номер индексного дескриптора
(mydir->d_ino).
/* Пример работы с каталогом */
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
main(int argc, char *argv[])
{
struct dirent *mydir;
DIR *dir_ds;
if((dir_ds = opendir(argv[1])) == NULL) {
perror("Ошибка открытия каталога
");
return 1;
}
while((mydir = readdir(dir_ds)) != NULL)
printf("Файл - %s, inode = %d\n", mydir->d_name,
mydir->d_ino);
puts("Конец каталога");
closedir(dir_ds);
return 0;
}
Лабораторные задания
1. Определить количество файлов с указанным расширением, находящихся в за-
данном каталоге. Если таких файлов нет, то выдать на экран сообщение. Имя
каталога и расширение передаются в программу через параметры командной
строки.
2. Прочитать содержимое указанного каталога в файл. Если каталог пуст, выдать
на
экран сообщение. Имя каталога вводится с клавиатуры.
3. Просмотреть содержимое текущего каталога, ввести с клавиатуры имя одного
из файлов. Если этот файл имеет ненулевую длину, то вывести его содержи-
мое на экран.
При вызове функции opendir(argv[1]) отрывается каталог, имя кото- рого задается строкой переданной через первый параметр командной строки при запуске программы. При нормальном завершении функция возвращает указатель на первую запись каталога dir_ds. При ошибочном завершении возвращается значение указателя NULL и выводится сообщение об ошибке. Далее организуется цикл последовательного просмотра записей каталога. Цикл завершается, когда функция чтения записи каталога возвращает значение NULL. При каждом вы- полнении цикла считывается очередная запись каталога. Эта запись помещается в структуру, доступ к которой выполняется по указателю *mydir. После этого выводятся имя файла (mydir->d_name) и номер индексного дескриптора (mydir->d_ino). /* Пример работы с каталогом */ #include#include #include main(int argc, char *argv[]) { struct dirent *mydir; DIR *dir_ds; if((dir_ds = opendir(argv[1])) == NULL) { perror("Ошибка открытия каталога"); return 1; } while((mydir = readdir(dir_ds)) != NULL) printf("Файл - %s, inode = %d\n", mydir->d_name, mydir->d_ino); puts("Конец каталога"); closedir(dir_ds); return 0; } Лабораторные задания 1. Определить количество файлов с указанным расширением, находящихся в за- данном каталоге. Если таких файлов нет, то выдать на экран сообщение. Имя каталога и расширение передаются в программу через параметры командной строки. 2. Прочитать содержимое указанного каталога в файл. Если каталог пуст, выдать на экран сообщение. Имя каталога вводится с клавиатуры. 3. Просмотреть содержимое текущего каталога, ввести с клавиатуры имя одного из файлов. Если этот файл имеет ненулевую длину, то вывести его содержи- мое на экран. 11
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »