Общие требования к программной реализации работ
Для реализации необходимо использовать язык программирования Си, если в описании к лабораторной работе не сказано иное.
Исходный код лабораторных работ размещать в репозитории Gitlab факультета ПИиКТ. Также необходимо следовать данным пунктам:
- «Нет» статичности. Все структуры данных должны допускать создание множества их экземпляров.
- «Нет» «магическим» константам. Все значения должны либо вычисляться из обрабатываемых программой данных, либо задаваться с помощью аргументов командной строки или конфигурационных файлов.
- «Нет» бесконечным циклам. Все циклы должны иметь понятные условия выхода: не допускается использовать, например, while (true), for (; ;) и т.д.
- «Нет» утечке ресурсов. Все ресурсы, которые были использованы в программе и требуют освобождения (закрытия), должны корректно освобождаться (закрываться) независимо от возникновения ошибочных ситуаций или исключений. Например, открытый файл должен быть закрыт после того, как он перестал использоваться в программе; аллоцированная вручную память обязательно должна освобождаться.
- «Нет» неожиданным завершениям программы. Все процессы, нити (threads) должны корректно завершаться в результате выполнения работы, а не прерываться функциями вида Abort/Exit.
- «Нет» побайтовому вводу-выводу. Все данные должны обрабатываться частями (блоками) известного размера, с учетом целесообразного размера буфера.