ЛР.2. Posix-программирование, обработка каталогов.

Задание

  1. Используя функции модуля dirent.h подсчитать в переданном каталоге с учетом содержимого подкаталогов произвольной глубины вложенности:
    1) количество файлов разных типов (регулярные файлы, каталоги, символьные устройства, блочные устройства, FIFO-каналы(пайпы), символические ссылки, сокеты)
    2) количество ошибок доступа
    3) суммарный объем регулярных файлов
    4) количество регулярных файлов, доступных текущему пользователю а) для чтения, б) для чтения и записи, в) для исполнения
  2. Используя функции модуля dirent.h и функцию realpath (man 3 realpath) для получения абсолютных имен файлов, найти в переданном каталоге с учетом содержимого подкаталогов произвольной глубины вложенности:
    1) регулярные файлы - жесткие ссылки друг на друга (выводить группами)
    2) символические ссылки на один и тот-же файл внутри исходного каталога (выводить группами, первым в группе имя регулярного файла, затем - ссылки на этот файл)
    3) символические ссылки, обеспечивающие "зацикливание" каталогов внутри исходного каталога и включая исходный каталог (выводить группами, первым в группе имя каталога, затем - зацикливающие этот каталог ссылки)