Системное программирование. Разработка с нуля, Лабораторная работа на C. Требуется написать программу создания sparse файлов. Программа считает нули и заменяет блоки, заполненные нулями, на seek для создания разреженного файла. Поскольку запись в файл идёт поблочно, то и входные данные надо обрабатывать поблочно (бессмысленно записать 1 байт, потом сделать seek на 315 байт и записать ещё один байт - все уйдет в один блок). По умолчанию сделать размер блока 4096 байт, но отдельный параметр должен задавать размер блока в байтах. Если на вход программе подаётся один аргумент — имя файла, то читается stdin и пишется в указанный файл. Если два аргумента, то читается первый файл и пишется в последний Ключевые функции: read(), write(), lseek(output, count, SEEK_CUR), ftruncate(output, size). Желательно подробно описать, как работает программа.