Используя системные вызовы, напишите программу на языке С, аналогичную работе утилит, указанных в варианте:
Программа должна осуществлять весь ввод-вывод через семейства read(2) и write(2).
Продумать обработку ошибок, используя заголовочный файл errno.h.
Обрабатываемые файлы должны передаваться в вашу программу через аргументы командной строки.
В случае возникновения ошибок при использовании системных вызовов, их необходимо обработать и вывести причину возникновения ошибки.
Все файлы (исходный код, Makefile, исполнямые и объектные файлы, ...) должны быть в одном каталоге, для компиляции файлов должен быть написан Makefile, позволяющий перекомпилировать только изменённые файлы.
Для получения возможности защиты на 4 балла:
+ программа должна уметь работать с несколькими файлами, а также стандартным входным потоком при указании в качестве имени файла "-".
Для получения возможности защиты на 5 баллов:
+ программа должна обрабатывать несколько ключей оригинальной команды.