建立一个名为 log_R.h的头文件
#ifndef _LOG_R_H_
#define _LOG_R_H_
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#define RED "\e[0;31m"
#define YELLOW "\e[0;33m"
#define CYAN "\e[0;36m"
#define COLOUREND "\e[0m"
#define clean_errno() (errno == 0 ? "NONE" : strerror(errno))
#define log_err(M,...) fprintf(stderr," "RED" [ERROR] (%s:%d: errno: %s) " M " "COLOUREND" \n",__FILE__, __LINE__, clean_errno(), ##__VA_ARGS__)
#define log_warn(M, ...) fprintf(stderr, " "YELLOW" [WARN] (%s:%d: errno: %s) " M " "COLOUREND" \n", __FILE__, __LINE__, clean_errno(), ##__VA_ARGS__)
#define log_info(M, ...) fprintf(stderr, " "CYAN" [INFO] (%s:%d) " M " "COLOUREND"\n", __FILE__, __LINE__, ##__VA_ARGS__)
#endif