Загрузка данных


#include "print_module.h"

#include <time.h>

int print_char(char ch) { return putchar(ch); }

void print_log(int (*print)(char), const char *message) {
    time_t current_time = time(NULL);
    const struct tm *local_time = localtime(&current_time);

    if (local_time != NULL) {
        char buffer[9];

        strftime(buffer, sizeof(buffer), "%H:%M:%S", local_time);

        print_string(print, Log_prefix);
        print_string(print, " ");
        print_string(print, buffer);
        print_string(print, " ");
        print_string(print, message);
    }
}

void print_string(int (*print)(char), const char *string) {
    for (int i = 0; string[i] != '\0'; i++) {
        print(string[i]);
    }
}


#ifndef PRINT_MODULE_H
#define PRINT_MODULE_H

#include <stdio.h>

#define Module_load_success_message "Output stream module load: success\n"
#define Log_prefix "[LOG]"

void print_log(int (*print)(char), const char *message);
int print_char(char ch);
void print_string(int (*print)(char), const char *string);

#endif