aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Kaiser2025-01-17 12:06:21 +0100
committerDominik Kaiser2025-01-17 12:06:21 +0100
commited1c486272f06d977d308a8bcaaa4b1dac12b6d7 (patch)
tree153e37e19b5c2e540104753240f89af0c4c07852
parent7f62b82b1fcf64b1bb4fc6e536706a91ed99c492 (diff)
downloadPhilosophers-ed1c486272f06d977d308a8bcaaa4b1dac12b6d7.tar.gz
Philosophers-ed1c486272f06d977d308a8bcaaa4b1dac12b6d7.zip
Add ft_utils
-rw-r--r--philo/include/ft_utils.h26
-rw-r--r--philo/include/philo.h34
-rw-r--r--philo/src/ft_utils.c47
-rw-r--r--philo/src/main.c18
4 files changed, 123 insertions, 2 deletions
diff --git a/philo/include/ft_utils.h b/philo/include/ft_utils.h
new file mode 100644
index 0000000..64804c2
--- /dev/null
+++ b/philo/include/ft_utils.h
@@ -0,0 +1,26 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_utils.h :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/01/17 11:57:44 by dkaiser #+# #+# */
+/* Updated: 2025/01/17 12:00:11 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef FT_UTILS_H
+#define FT_UTILS_H
+
+/*
+** Prints error message and returns EXIT_FAILURE
+*/
+int ft_err(const char *str);
+
+/*
+** Returns integer value from str
+*/
+int ft_atoi(const char *str);
+
+#endif
diff --git a/philo/include/philo.h b/philo/include/philo.h
new file mode 100644
index 0000000..1ec9c3d
--- /dev/null
+++ b/philo/include/philo.h
@@ -0,0 +1,34 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* philo.h :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/01/17 10:23:19 by dkaiser #+# #+# */
+/* Updated: 2025/01/17 12:01:01 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#ifndef PHILO_H
+# define PHILO_H
+
+# include <unistd.h>
+# include <stdlib.h>
+# include <stdio.h>
+# include <pthread.h>
+# include <sys/time.h>
+# include "ft_utils.h"
+
+# define ERR_USAGE "Usage: <nbr_of_philos> <ttd> <tte> <tts> [times_must_eat]"
+
+typedef struct s_phdata
+{
+ int nbr_of_philos;
+ int time_to_die;
+ int time_to_eat;
+ int time_to_sleep;
+ int times_must_eat;
+} t_phdata;
+
+#endif
diff --git a/philo/src/ft_utils.c b/philo/src/ft_utils.c
new file mode 100644
index 0000000..9eb660a
--- /dev/null
+++ b/philo/src/ft_utils.c
@@ -0,0 +1,47 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_utils.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2025/01/17 11:57:11 by dkaiser #+# #+# */
+/* Updated: 2025/01/17 11:59:28 by dkaiser ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include "ft_utils.h"
+
+int ft_err(const char *str)
+{
+ printf("\e[31m[ERROR] %s\e[0m\n", str);
+ return (EXIT_FAILURE);
+}
+
+int ft_atoi(const char *str)
+{
+ int result;
+ int i;
+ int posneg;
+
+ posneg = 1;
+ result = 0;
+ i = 0;
+ while ((str[i] >= '\t' && str[i] <= '\r') || str[i] == ' ')
+ {
+ i++;
+ }
+ if (str[i] == '-')
+ {
+ posneg = -1;
+ i++;
+ }
+ else if (str[i] == '+')
+ i++;
+ while (str[i] >= '0' && str[i] <= '9')
+ {
+ result = 10 * result + str[i] - '0';
+ i++;
+ }
+ return (result * posneg);
+}
diff --git a/philo/src/main.c b/philo/src/main.c
index bca80b5..efcc9a5 100644
--- a/philo/src/main.c
+++ b/philo/src/main.c
@@ -6,13 +6,27 @@
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/14 17:13:30 by dkaiser #+# #+# */
-/* Updated: 2025/01/14 17:14:12 by dkaiser ### ########.fr */
+/* Updated: 2025/01/17 11:53:53 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
#include "philo.h"
+int ft_err(char *str)
+{
+ printf("\e[31m[ERROR] %s\e[0m\n", str);
+ return (EXIT_FAILURE);
+}
+
int main(int argc, char *argv[])
{
- return 0;
+ t_phdata data;
+ int result;
+
+ if (argc != 5 && argc != 6)
+ return(ft_err(ERR_USAGE));
+ result = load_data(&data, argc, argv);
+ if (result != EXIT_SUCCESS)
+ return (result);
+ return (EXIT_SUCCESS);
}