*Лабораторная работа 1. Разработка консольных утилит.

Информация

Одной из задач инженера-программиста является разработка программных утилит, обрабатывающих специфичную для предприятия информацию. Достаточно часто создаваемые утилиты предназначены для промежуточной или конечной обработки информации, полученной из различных источников, а результат обработки может быть востребован как пользователями, так и применяться в виде исходных данных в других информационных системах. Для успешного решения указанной задачи исполнитель должен в совершенстве знать как минимум один язык программирования, пригодный для обработки больших объемов данных, и владеть программным инструментарием.

Задание

Разработать утилиту concat, которая будет являться упрощенным вариантом cat - стандартной утилиты операционной системы Unix (Linux, BSD, POSIX-совместимых и др. ОС), предназначенной для объединения файлов. За основу взять вариант для ОС Linux. Из набора требуемых опций реализовать -n, -b, -s, --help, --version. Вывод версии утилиты дополнить выводом идентификационных данных разработчика.

Критерии зачета

Лабораторная работа зачитывается в случае, если студент успешно прошел всю совокупность контрольных мероприятий, перечисленных ниже:
  1. Продемонстрировал работоспособность утилиты с различными комбинациями файлов и опций по выбору преподавателя.
  2. Продемонстрировал программный код утилиты, объяснив функциональные возможности любых его участков по выбору преподавателя.
  3. *При модификации преподавателем условия задачи - внес требуемые изменения в программный код и продемонстрировал работоспособность утилиты.
Контрольное мероприятие, помеченное *, применяется в случае несамостоятельного решения (плагиата, использование стороннего кода, в том числе - кода согрупников и т.д.), а также в случае значительной задержки в представлении результатов работы. Сложность данного мероприятия увеличивается как с увеличением задержки, так и с уровнем несамостоятельности решения. Уровень несамостятельности решения определяется преподавателем.