Загрузить файлы в «/»
This commit is contained in:
71
connection_module.c
Normal file
71
connection_module.c
Normal file
@ -0,0 +1,71 @@
|
||||
#include <stdio.h>
|
||||
|
||||
// Объявляем функции модулей как слабые (weak), чтобы отсутствующие модули не ломали компиляцию
|
||||
#define DECLARE_MODULE_RUN(num) extern int module_##num##_run() __attribute__((weak))
|
||||
|
||||
DECLARE_MODULE_RUN(00);
|
||||
DECLARE_MODULE_RUN(01);
|
||||
DECLARE_MODULE_RUN(02);
|
||||
DECLARE_MODULE_RUN(03);
|
||||
DECLARE_MODULE_RUN(04);
|
||||
DECLARE_MODULE_RUN(05);
|
||||
DECLARE_MODULE_RUN(06);
|
||||
DECLARE_MODULE_RUN(07);
|
||||
DECLARE_MODULE_RUN(08);
|
||||
DECLARE_MODULE_RUN(09);
|
||||
DECLARE_MODULE_RUN(10);
|
||||
DECLARE_MODULE_RUN(11);
|
||||
DECLARE_MODULE_RUN(12);
|
||||
DECLARE_MODULE_RUN(13);
|
||||
DECLARE_MODULE_RUN(14);
|
||||
DECLARE_MODULE_RUN(15);
|
||||
DECLARE_MODULE_RUN(16);
|
||||
DECLARE_MODULE_RUN(17);
|
||||
DECLARE_MODULE_RUN(18);
|
||||
DECLARE_MODULE_RUN(19);
|
||||
DECLARE_MODULE_RUN(20);
|
||||
DECLARE_MODULE_RUN(21);
|
||||
DECLARE_MODULE_RUN(22);
|
||||
DECLARE_MODULE_RUN(23);
|
||||
DECLARE_MODULE_RUN(24);
|
||||
DECLARE_MODULE_RUN(25);
|
||||
DECLARE_MODULE_RUN(26);
|
||||
DECLARE_MODULE_RUN(27);
|
||||
DECLARE_MODULE_RUN(28);
|
||||
DECLARE_MODULE_RUN(29);
|
||||
DECLARE_MODULE_RUN(30);
|
||||
DECLARE_MODULE_RUN(31);
|
||||
DECLARE_MODULE_RUN(32);
|
||||
DECLARE_MODULE_RUN(33);
|
||||
DECLARE_MODULE_RUN(34);
|
||||
DECLARE_MODULE_RUN(35);
|
||||
|
||||
int main() {
|
||||
// Массив указателей на функции модулей
|
||||
int (*module_runs[36])() = {
|
||||
module_00_run, module_01_run, module_02_run, module_03_run,
|
||||
module_04_run, module_05_run, module_06_run, module_07_run,
|
||||
module_08_run, module_09_run, module_10_run, module_11_run,
|
||||
module_12_run, module_13_run, module_14_run, module_15_run,
|
||||
module_16_run, module_17_run, module_18_run, module_19_run,
|
||||
module_20_run, module_21_run, module_22_run, module_23_run,
|
||||
module_24_run, module_25_run, module_26_run, module_27_run,
|
||||
module_28_run, module_29_run, module_30_run, module_31_run,
|
||||
module_32_run, module_33_run, module_34_run, module_35_run
|
||||
};
|
||||
|
||||
// Выполняем все модули последовательно
|
||||
for (int i = 0; i < 35; i++) {
|
||||
if (module_runs[i] != NULL) {
|
||||
printf("Запуск модуля module_%02d\n", i);
|
||||
int result = module_runs[i]();
|
||||
if (result != 0) {
|
||||
fprintf(stderr, "Модуль module_%02d завершился с ошибкой: %d\n", i, result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// gcc -o connection_module connection_module.c module_*.c
|
3
module_00.c
Normal file
3
module_00.c
Normal file
@ -0,0 +1,3 @@
|
||||
int module_00_run() {
|
||||
return 0;
|
||||
}
|
6
module_01.c
Normal file
6
module_01.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int module_01_run() {
|
||||
printf(" Hello, world!\n");
|
||||
return 0;
|
||||
}
|
20
module_04.c
Normal file
20
module_04.c
Normal file
@ -0,0 +1,20 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h> // для usleep
|
||||
#include <string.h> // для strlen
|
||||
|
||||
int module_04_run() {
|
||||
const char *text = " Permission denied.";
|
||||
const char *red = "\033[1;31m";
|
||||
const char *reset = "\033[0m";
|
||||
|
||||
printf("%s", red); // включаем красный
|
||||
|
||||
for (size_t i = 0; i < strlen(text); i++) {
|
||||
printf("%c", text[i]);
|
||||
fflush(stdout); // выводим сразу
|
||||
usleep(100000); // задержка 0.1 секунды
|
||||
}
|
||||
|
||||
printf("%s\n", reset); // сброс цвета и перенос строки
|
||||
return 0;
|
||||
}
|
21
module_21.c
Normal file
21
module_21.c
Normal file
@ -0,0 +1,21 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int module_21_run() {
|
||||
// Проверяем наличие файла README.md
|
||||
FILE *file = fopen("README.md", "r");
|
||||
if (file == NULL) {
|
||||
fprintf(stderr, "Ошибка: файл README.md не найден\n");
|
||||
return 1;
|
||||
}
|
||||
fclose(file);
|
||||
|
||||
// Запускаем glow для отображения README.md
|
||||
int result = system("glow README.md");
|
||||
if (result != 0) {
|
||||
fprintf(stderr, "Ошибка: не удалось запустить glow (убедитесь, что glow установлен)\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user