mirror of
				https://github.com/theoludwig/libcproject.git
				synced 2025-05-21 23:21:15 +02:00 
			
		
		
		
	fix: handle EXIT_FAILURE by printing error message with perror
This commit is contained in:
		| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_ARRAY_LIST__ | ||||
| #define __LIBCPROJECT_ARRAY_LIST__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdbool.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_CHARACTER__ | ||||
| #define __LIBCPROJECT_CHARACTER__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdbool.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
|   | ||||
| @@ -3,6 +3,7 @@ | ||||
| string_t convert_character_to_string(const char character) { | ||||
|   string_t string = malloc(sizeof(char) * 2); | ||||
|   if (string == NULL) { | ||||
|     perror("Error (convert_character_to_string)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   string[0] = character; | ||||
| @@ -44,6 +45,7 @@ string_t convert_number_to_string(const long long integer) { | ||||
|   } | ||||
|   string_t string = malloc(sizeof(char) * length); | ||||
|   if (string == NULL) { | ||||
|     perror("Error (convert_number_to_string)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   current = mathematics_absolute_value(integer); | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_CONVERT__ | ||||
| #define __LIBCPROJECT_CONVERT__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_HASH_MAP__ | ||||
| #define __LIBCPROJECT_HASH_MAP__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
| #include <stdlib.h> | ||||
|   | ||||
| @@ -3,6 +3,7 @@ | ||||
| struct linked_list *linked_list_initialization() { | ||||
|   struct linked_list *list = malloc(sizeof(*list)); | ||||
|   if (list == NULL) { | ||||
|     perror("Error (linked_list_initialization)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   list->head = NULL; | ||||
| @@ -11,8 +12,14 @@ struct linked_list *linked_list_initialization() { | ||||
| } | ||||
|  | ||||
| struct linked_list_node *linked_list_add_in_head(struct linked_list *list, void *new_data) { | ||||
|   if (list == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (linked_list_add_in_head)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct linked_list_node *node_new = malloc(sizeof(*node_new)); | ||||
|   if (list == NULL || node_new == NULL) { | ||||
|   if (node_new == NULL) { | ||||
|     perror("Error (linked_list_add_in_head)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   node_new->data = new_data; | ||||
| @@ -24,6 +31,8 @@ struct linked_list_node *linked_list_add_in_head(struct linked_list *list, void | ||||
|  | ||||
| void linked_list_delete_in_head(struct linked_list *list) { | ||||
|   if (list == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (linked_list_delete_in_head)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   if (list->head != NULL) { | ||||
| @@ -35,11 +44,17 @@ void linked_list_delete_in_head(struct linked_list *list) { | ||||
| } | ||||
|  | ||||
| struct linked_list_node *linked_list_add_after_last(struct linked_list *list, void *new_data) { | ||||
|   if (list == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (linked_list_add_after_last)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   if (list->head == NULL) { | ||||
|     return linked_list_add_in_head(list, new_data); | ||||
|   } | ||||
|   struct linked_list_node *node_new = malloc(sizeof(*node_new)); | ||||
|   if (list == NULL || node_new == NULL) { | ||||
|   if (node_new == NULL) { | ||||
|     perror("Error (linked_list_add_after_last)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   node_new->data = new_data; | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_LINKED_LIST__ | ||||
| #define __LIBCPROJECT_LINKED_LIST__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdbool.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
|   | ||||
| @@ -3,6 +3,7 @@ | ||||
|  | ||||
| #define MATHEMATICS_FLOAT_PRECISION 0.00000001 | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdbool.h> | ||||
|  | ||||
| #include "types.h" | ||||
|   | ||||
							
								
								
									
										13
									
								
								lib/queue.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								lib/queue.c
									
									
									
									
									
								
							| @@ -3,6 +3,7 @@ | ||||
| struct queue *queue_initialization() { | ||||
|   struct queue *queue = malloc(sizeof(*queue)); | ||||
|   if (queue == NULL) { | ||||
|     perror("Error (queue_initialization)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   queue->first = NULL; | ||||
| @@ -11,8 +12,14 @@ struct queue *queue_initialization() { | ||||
| } | ||||
|  | ||||
| void queue_push(struct queue *queue, void *data) { | ||||
|   if (queue == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (queue_push)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct queue_node *node_new = malloc(sizeof(*node_new)); | ||||
|   if (queue == NULL || node_new == NULL) { | ||||
|   if (node_new == NULL) { | ||||
|     perror("Error (queue_push)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   node_new->data = data; | ||||
| @@ -31,6 +38,8 @@ void queue_push(struct queue *queue, void *data) { | ||||
|  | ||||
| void *queue_pop(struct queue *queue) { | ||||
|   if (queue == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (queue_pop)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct queue_node *node = queue->first; | ||||
| @@ -46,6 +55,8 @@ void *queue_pop(struct queue *queue) { | ||||
|  | ||||
| void queue_free(struct queue *queue) { | ||||
|   if (queue == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (queue_free)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct queue_node *node = queue->first; | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_QUEUE__ | ||||
| #define __LIBCPROJECT_QUEUE__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
|   | ||||
							
								
								
									
										13
									
								
								lib/stack.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								lib/stack.c
									
									
									
									
									
								
							| @@ -3,6 +3,7 @@ | ||||
| struct stack *stack_initialization() { | ||||
|   struct stack *stack = malloc(sizeof(*stack)); | ||||
|   if (stack == NULL) { | ||||
|     perror("Error (stack_initialization)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   stack->first = NULL; | ||||
| @@ -11,8 +12,14 @@ struct stack *stack_initialization() { | ||||
| } | ||||
|  | ||||
| void stack_push(struct stack *stack, void *data) { | ||||
|   if (stack == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (stack_push)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct stack_node *node_new = malloc(sizeof(*node_new)); | ||||
|   if (stack == NULL || data == NULL) { | ||||
|   if (data == NULL) { | ||||
|     perror("Error (stack_push)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   node_new->data = data; | ||||
| @@ -23,6 +30,8 @@ void stack_push(struct stack *stack, void *data) { | ||||
|  | ||||
| void *stack_pop(struct stack *stack) { | ||||
|   if (stack == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (stack_pop)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct stack_node *node = stack->first; | ||||
| @@ -38,6 +47,8 @@ void *stack_pop(struct stack *stack) { | ||||
|  | ||||
| void stack_free(struct stack *stack) { | ||||
|   if (stack == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (stack_free)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct stack_node *node = stack->first; | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_STACK__ | ||||
| #define __LIBCPROJECT_STACK__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
|   | ||||
| @@ -67,6 +67,7 @@ string_t string_copy(const string_t string) { | ||||
|   size_t source_length = string_get_length(string); | ||||
|   string_t copy = malloc(sizeof(char) * (source_length + 1)); | ||||
|   if (copy == NULL) { | ||||
|     perror("Error (string_copy)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   size_t index; | ||||
| @@ -150,6 +151,7 @@ string_t* string_split(const string_t string, char separator, size_t* result_siz | ||||
|   string_t current = malloc(sizeof(char) * (string_length + 1)); | ||||
|   string_t* result = NULL; | ||||
|   if (current == NULL) { | ||||
|     perror("Error (string_split)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   while (index_string < string_length) { | ||||
| @@ -157,6 +159,7 @@ string_t* string_split(const string_t string, char separator, size_t* result_siz | ||||
|       current[index_current] = '\0'; | ||||
|       result = realloc(result, sizeof(string_t) * (index_result + 1)); | ||||
|       if (result == NULL) { | ||||
|         perror("Error (string_split)"); | ||||
|         exit(EXIT_FAILURE); | ||||
|       } | ||||
|       result[index_result] = string_copy(current); | ||||
| @@ -168,10 +171,10 @@ string_t* string_split(const string_t string, char separator, size_t* result_siz | ||||
|     } | ||||
|     index_string++; | ||||
|   } | ||||
|  | ||||
|   current[index_current] = '\0'; | ||||
|   result = realloc(result, sizeof(string_t) * (index_result + 1)); | ||||
|   if (result == NULL) { | ||||
|     perror("Error (string_split)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   result[index_result] = string_copy(current); | ||||
| @@ -188,6 +191,7 @@ string_t string_join(string_t* array, const char separator, size_t array_length) | ||||
|   size_t string_length = total_length + (array_length - 1); | ||||
|   string_t string = malloc(sizeof(char) * (string_length + 1)); | ||||
|   if (string == NULL) { | ||||
|     perror("Error (string_join)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   size_t current_index = 0; | ||||
| @@ -214,6 +218,7 @@ string_t string_concatenate(string_t string1, string_t string2) { | ||||
|   size_t result_length = string1_length + string2_length; | ||||
|   string_t result = malloc(sizeof(char) * (result_length + 1)); | ||||
|   if (result == NULL) { | ||||
|     perror("Error (string_concatenate)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   size_t index_string1 = 0; | ||||
| @@ -293,6 +298,7 @@ string_t string_get_formatted_number(const long long number, string_t separator) | ||||
|   size_t formatted_length = number_string_length + (number_string_length - 1) / 3; | ||||
|   string_t result = malloc(sizeof(char) * (formatted_length + 1)); | ||||
|   if (result == NULL) { | ||||
|     perror("Error (string_get_formatted_number)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   size_t count = 0; | ||||
| @@ -336,6 +342,7 @@ string_t string_get_last_occurence_of_character(const string_t string, char char | ||||
|   } | ||||
|   string_t result = malloc(sizeof(char) * (string_length - index_last_occurrence + 1)); | ||||
|   if (result == NULL) { | ||||
|     perror("Error (string_get_last_occurence_of_character)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   size_t index_result = 0; | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_STRING__ | ||||
| #define __LIBCPROJECT_STRING__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdbool.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|   | ||||
| @@ -5,6 +5,7 @@ string_t terminal_input() { | ||||
|   size_t length = 1; | ||||
|   string_t string = malloc(length * sizeof(char)); | ||||
|   if (string == NULL) { | ||||
|     perror("Error (terminal_input)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   *string = '\0'; | ||||
| @@ -12,6 +13,7 @@ string_t terminal_input() { | ||||
|     length++; | ||||
|     string = realloc(string, length * sizeof(char)); | ||||
|     if (string == NULL) { | ||||
|       perror("Error (terminal_input)"); | ||||
|       exit(EXIT_FAILURE); | ||||
|     } | ||||
|     character_append(string, character); | ||||
| @@ -54,6 +56,8 @@ void terminal_print_string(void* value) { | ||||
|  | ||||
| void terminal_print_stack(struct stack* stack, void (*print_element)(void*)) { | ||||
|   if (stack == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (terminal_print_stack)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct stack_node* node_current = stack->first; | ||||
| @@ -68,6 +72,8 @@ void terminal_print_stack(struct stack* stack, void (*print_element)(void*)) { | ||||
|  | ||||
| void terminal_print_queue(struct queue* queue, void (*print_element)(void*)) { | ||||
|   if (queue == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (terminal_print_queue)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct queue_node* node_current = queue->first; | ||||
| @@ -82,6 +88,8 @@ void terminal_print_queue(struct queue* queue, void (*print_element)(void*)) { | ||||
|  | ||||
| void terminal_print_linked_list(struct linked_list* linked_list, void (*print_element)(void*)) { | ||||
|   if (linked_list == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (terminal_print_linked_list)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   struct linked_list_node* node_current = linked_list->head; | ||||
| @@ -96,6 +104,8 @@ void terminal_print_linked_list(struct linked_list* linked_list, void (*print_el | ||||
|  | ||||
| void terminal_print_hash_map(struct hash_map* hash_map, void (*print_element)(void*)) { | ||||
|   if (hash_map == NULL) { | ||||
|     errno = EINVAL; | ||||
|     perror("Error (terminal_print_hash_map)"); | ||||
|     exit(EXIT_FAILURE); | ||||
|   } | ||||
|   printf("{\n"); | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| #ifndef __LIBCPROJECT_TERMINAL__ | ||||
| #define __LIBCPROJECT_TERMINAL__ | ||||
|  | ||||
| #include <errno.h> | ||||
| #include <stdbool.h> | ||||
| #include <stdint.h> | ||||
| #include <stdio.h> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user