#ifndef ERROR_CODE_H #define ERROR_CODE_H #include #define MAX_ERROR_MESSAGE_LENGTH 512 enum error_code { ERR_NO_ERR = 0, ERR_INVALID_ARGS = 1, ERR_INVALID_FUNCTION = 2, ERR_INVALID_FILENAME = 3, ERR_INVALID_LIMITS = 4, ERR_BAD_ALLOC = 5 }; struct error_buffer { enum error_code err; char text[MAX_ERROR_MESSAGE_LENGTH]; size_t text_len; }; void error_buffer_init(struct error_buffer *eb); void error_set(struct error_buffer *eb, enum error_code err); void error_printf(struct error_buffer *eb, const char *format, ...); enum error_code error_get(const struct error_buffer *eb); const char *error_get_text(const struct error_buffer *eb); #endif /* ERROR_CODE_H */