Мне нужна помощь с этим проектом. Ниже приводится текст проекта:
Разработка системного приложения Unix / Linux под названием filestat, способного отслеживать набор файлов, собирающих информацию о: размере (в байтах); разрешения; последний доступ к файлу; дата последнего изменения файла; дата последнего изменения разрешений; количество ссылок на файл; владелец; группа.
Синопсис программы:
filestat [options] [input] [output]
.
Input - это входной файл, в котором определены параметры выполнения программы, если не указан, используется файл filestat.in;
Выход - это выходной файл, в который собираются собранные данные, если он не указан, используется файл filestat.db. Информация в выходном файле обновляется при каждом запуске программы (и не перезаписывается).
Возможные [option]
:
–Verbose | -v
: во время выполнения программа отображает на экране информацию об обработанных файлах и собранных данных;
–Stat | -s
: на стандартном выводе отображается следующая статистика: количество отслеживаемых файлов; количество ссылок; номер каталога; общий размер; средний размер; максимальный размер; минимальный размер (в байтах).
–Report | -r
: в конце выполнения на стандартный вывод выводится информация о количестве обработанных файлов, времени обработки, максимальном размере файла;
–History | -h <filepah>
: вывести на стандартный вывод хронологию информации о файле;
–User | -u <userId>
: выводит информацию обо всех принадлежащих файлах на стандартный вывод
–Group | -g <groupId>
: печатать информацию обо всех файлах, принадлежащих стандартному выводу;
–Length | -l <min>
:: выводить на экран информацию обо всех файлах размером (в байтах) между и (: обозначает каждый файл размером не более ,: и указывать каждый файл не менее
–Noscan
: если эта опция присутствует, данные не собираются, а отображается только информация, присутствующая в выходном файле.
Формат входного файла: [r] [l].
Где r указывает, что файлы должны быть рекурсивно прочитаны в нижележащих каталогах (применяя те же параметры), а l указывает, что ссылки должны рассматриваться как обычные файлы / каталоги, в этом случае собранная информация относится к файлу, указанному ссылкой и не связывать одно и то же.
Формат выходного файла:
# <path1>
<data1> <uid1> <gid1> <dim1> <perm1> <acc1> <change1> <mod1> <nlink1>
...
<data_n> <uid_n> <gid_n> <dim_n> <perm_n> <acc_n> <change_n> <mod_n>
<nlink_n>
###
# <path2>
<data1> <uid1> <gid1> <dim1> <perm1> <acc1> <change1> <mod1> <nlink1>
...
<data_n> <uid_n> <gid_n> <dim_n> <perm_n> <acc_n> <change_n> <mod_n>
<nlink_n>
###
...
# <pathm>
<data1> <uid1> <gid1> <dim1> <perm1> <acc1> <change1> <mod1> <nlink1>
...
<data_n> <uid_n> <gid_n> <dim_n> <perm_n> <acc_n> <change_n> <mod_n>
<nlink_n>
###
###
Информация, связанная с файлом / каталогом, начинается со строки: # <path>
Затем следует последовательность строк (по одной на каждый выполненный анализ) вида:
<data> <uid> <gid> <dim> <perm> <acc> <change> <mod> <nlink>
Где это:
<data>
указывает дату и время получения информации;
<uid>
- идентификатор пользователя, владеющего файлом;
<gid>
- идентификатор группы файлов;
<perm>
- строка с правами доступа к файлу;
<acc>
дата последнего доступа;
<change>
дата последнего изменения;
<mod>
дата последнего изменения разрешений;
<nlink>
количество ссылок на файл.
Информация заканчивается строкой: ###
Файл заканчивается строкой: ###
Я новичок в программировании на C и ищу советы о том, как мне двигаться.
Извините, если вопрос был написан неправильно.