Работа с интерфейсом прикладного программирования операционной системы Linux. Шашков Б.Д. - 11 стр.

UptoLike

Составители: 

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