From 773aeddff1928c76c1f51c187b92f67e28cb9bed Mon Sep 17 00:00:00 2001 From: Grannik Date: Tue, 22 Apr 2025 13:56:13 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?/=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..103787f --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ + +# Module_connection + +## Описание + Модульная программа на C. Этот проект представляет собой модульную программу на языке C, состоящую из главного файла `connection_module.c` и нескольких модульных файлов (`module_00.c`, `module_01.c`, `module_04.c` и др.). Программа выполняет функции модулей последовательно, используя слабые ссылки для обработки отсутствующих модулей. Каждый модуль предоставляет функцию `module_XX_run()`, которая выполняет определённую задачу и возвращает код завершения (0 — успех, ненулевое значение — ошибка). + +## Возможности +Подключение любых модулей (программ, написанных на языке программирования C) с практически любыми функциями. + +## Структура проекта +- **connection_module.c**: Главный файл, содержащий функцию `main()`. Отвечает за инициализацию массива указателей на функции модулей, их последовательный запуск и обработку ошибок. +- **module_00.c**: Пустой модуль, возвращающий 0. +- **module_01.c**: Выводит сообщение "Hello, world!" в консоль. +- **module_04.c**: Выводит сообщение "Permission denied." в красном цвете с анимацией (пошаговый вывод символов с задержкой 0.1 секунды). +- **module_21.c**: Отображает содержимое файла `README.md` в консоли с форматированием Markdown, используя утилиту `glow`. +- Другие модули (`module_02.c`, `module_03.c`, ..., `module_35.c`) отсутствуют в предоставленных файлах, но могут быть добавлены. Благодаря слабым ссылкам их отсутствие не приводит к ошибкам компиляции. + +## Зависимости +- Стандартная библиотека C (`stdio.h`, `string.h`). +- Библиотека `unistd.h` (используется в `module_04.c` для функции `usleep`). +- Компилятор GCC для сборки проекта. + +### Требования +- Установленный компилятор GCC. +- POSIX-совместимая система (для `usleep` в `module_04.c`). + +### Сборка и запуск +1. Поместите все файлы (`connection_module.c`, `module_*.c`) в одну директорию. +2. Выполните команду для компиляции: + +```bash +gcc -o connection_module connection_module.c module_*.c +``` + +## Установка в систему +```bash +sudo mv connection_module /usr/local/bin/ +``` + +## Запуск в директории +```bash +./connection_module +``` + +## Установка в систему +```bash +sudo mv connection_module /usr/local/bin/ +``` + +## Автор +**Grannik** + +## Контакты +- **Сайт**: [Granni](https://grannik.neocities.org/) + +## Репозитории +- **Codeberg**: [module_connection](https://codeberg.org/Grannik/Module_connection) +- **GitHub**: [module_connection](https://github.com/Grannik/Module_connection) +- **GitLab**: [module_connection](https://gitlab.com/grannik/module_connection/-/tree/main) +- **SourceForge**: [module_connection](https://sourceforge.net/projects/module-connection/) +- **NotABug**: [module_connection]() +- **Gitea (Demo)**: [module_connection]() +- **Gogs (Demo)**: [module_connection]() + +## Лицензия +Этот проект распространяется под лицензией **MIT**.