From 11ad2d874154a00a4b6c91c4cc35f880067d2f5c Mon Sep 17 00:00:00 2001 From: Adam Joly Date: Mon, 8 Jul 2024 10:33:28 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8E=89=E3=80=8D=20init:=20hello?= =?UTF-8?q?=20world=20!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 9 ++++++ philo/Makefile | 60 ++++++++++++++++++++++++++++++++++++++ philo/include/philo.h | 31 ++++++++++++++++++++ philo/include/philo_msg.h | 22 ++++++++++++++ philo/philo | Bin 0 -> 17488 bytes philo/src/log.c | 28 ++++++++++++++++++ philo/src/philo.c | 20 +++++++++++++ 7 files changed, 170 insertions(+) create mode 100644 .gitignore create mode 100644 philo/Makefile create mode 100644 philo/include/philo.h create mode 100644 philo/include/philo_msg.h create mode 100755 philo/philo create mode 100644 philo/src/log.c create mode 100644 philo/src/philo.c diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ad4fb1b --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +philo/obj/ +philo/philosphers +philo/.direnv +philo/.envrc +philo/flake.nix +philo/compile_commands.json +philo/.cache +philo/vgcore.* + diff --git a/philo/Makefile b/philo/Makefile new file mode 100644 index 0000000..83b5855 --- /dev/null +++ b/philo/Makefile @@ -0,0 +1,60 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: adjoly +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2024/07/07 15:08:52 by adjoly #+# #+# # +# Updated: 2024/07/07 15:24:47 by adjoly ### ########.fr # +# # +# **************************************************************************** # + +SHELL = bash + +NAME = philo + +CC = cc + +OBJSDIR = obj/ + +SRC = $(shell find src -name '*.c') + +I_DIR = include/ + +INCLUDE = -I $(I_DIR) + +OBJS = $(addprefix $(OBJSDIR), $(SRC:.c=.o)) + +FLAGS = -Werror -Wall -Wextra -g + +# -------------------------------- + +all: $(NAME) + +$(LIB): + @make -sj$(nproc) -C $(LIBFT_DIR) + +$(NAME): $(LIB) $(OBJS) + @printf "\x1B[2K\r \x1B[1;32m[ 󱌣 ]\x1B[0m objects compiled." + @printf "\n \x1B[1;33m[  ]\x1B[0m compiling $(NAME)..." + @$(CC) $(FLAGS) $(OBJS) $(LIB) -o $(NAME) -lpthread + @printf "\x1B[2K\r \x1B[1;33m[  ]\x1B[0m $(NAME) compiled.\n" + +$(OBJSDIR)%.o: %.c + @mkdir -p $(@D) + @$(CC) $(INCLUDE) $(FLAGS) $< -c -o $@ + @printf "\x1B[2K\r \x1B[1;32m[ 󱌣 ]\x1B[0m compiling objects... : $<" + +clean: + @rm -f $(OBJS) + @printf " \x1B[1;31m[  ]\x1B[0m deleted $(NAME).\n" + +fclean: clean + @rm -f $(NAME) + @rm -Rf $(OBJSDIR) + @printf " \x1B[1;31m[  ]\x1B[0m deleted objects.\n" + +re: fclean all + +.PHONY: clean all re fclean diff --git a/philo/include/philo.h b/philo/include/philo.h new file mode 100644 index 0000000..4b884b7 --- /dev/null +++ b/philo/include/philo.h @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* philo.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/07/07 15:11:02 by adjoly #+# #+# */ +/* Updated: 2024/07/07 16:18:23 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef PHILO_H +# define PHILO_H + +# include +# include +# include + +typedef enum s_philo_state +{ + DIED = -1, + EAT, + THINK, + SLEEP, + FORK_TAKEN +} t_philo_state; + +void log_philo(uint32_t timestamp, uint16_t philo, t_philo_state type); + +#endif diff --git a/philo/include/philo_msg.h b/philo/include/philo_msg.h new file mode 100644 index 0000000..36dee37 --- /dev/null +++ b/philo/include/philo_msg.h @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* philo_msg.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/07/07 17:50:46 by adjoly #+# #+# */ +/* Updated: 2024/07/07 17:53:53 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef PHILO_MSG_H +# define PHILO_MSG_H + +# define EATING_MSG "is eating\n" +# define THINK_MSG "is thinking\n" +# define SLEEP_MSG "is sleeping\n" +# define DIED_MSG "died\n" +# define FORK_MSG "has taken a fork\n" + +#endif diff --git a/philo/philo b/philo/philo new file mode 100755 index 0000000000000000000000000000000000000000..6c0685fa19b26934df25849255c0c29d93a58e48 GIT binary patch literal 17488 zcmeHOdu$xV8K1p}ZDL|yY#z>|WC=+~p}zAgt|5@DV>>w~&V%4kpn}c$Ztc5rzH{&P zXiRw+g@;Uv8qx|>l~(4D7F8-ODo8wvAT)@Fs8kSD)xX*Zff__hjha@J(p-Pv%zWqb z)@~6+m0ImsGvD(!-|V-0vpe3M+XjZV1q?%Q35d;tBr9S`m1>1JvPp_s*CUn+OI#q< zh#F`@sFt)4RUFe_2b6(no%RcY60U_9Nv(Nwm6U{F$|EF7xVd6!R?(KQ5}AsKk_jhG zS{C~FnBJ?$$+Q|LjJpqR21!i&3F%pGx z*6yxoF(2)a9yBhBLD$sw-TOsgN*p5{c zk5%SA2tz(p$e)MAGWn67{Hkqa=R!8Ftot~WFii_MHZP*5X~0~-U)VM>mb8m*qTt%& ziA+vR6f!w?RFInT)-ARV4Q}nTJE9%YjTOGL3&^qYd`=^6^c}#_(zvJ?kXC^5`7Eu- zoI%-Gt96gxcRwzRfM_FUl-Vtoq;#!tAEfx8O0O?<>DOXelGdVKEVt6ZZ~P4S8SpdU zXTZ;Zp8-Dueg^yu{2yfCPmSk&7(ev;y7=MnJ24^RcOG*C<=5heUZ^`RkFLD&O{mN3 z-a^~B+5$&%nr!c!D3{BGZ~w#K^y}Bhr{9bpdTVy?@Id>q_E+LBz0|f0?q?r{`>D}r z9BPCW8t8y>*pms9IDKS?e$gfpHaMft?&k>jIt&J_Py>3{osl1$IWpMP&l z{P_=papT4K>!;mil^$w!4_-XQpSpY_1|>?(`{UDZpS%f2@nZM_XpHNQ|5H5jfA^lb zF%Sg#icH_~QGB{I``i+A^eim`pGG(3lS{$1A4B>g*Bx(M-7f_Dk5115GCDo*;q?Af zhi*9~8t=RizK2U6H9oQb!}xO{(}IYjf2u)qkBXCDKV2@r^9Hm47>fdy&jGF{z;_fN zuqa^t9H5l|V+v4S6wo;b_~`Edv@1Zc@y<2i7C44W<^Zn}0A9k=s2mB(ue|;$R~-5J z#m|7B0Y3wN2K)^88SpdUXTZ;Zp8-Dueg;164AA?vbtQ9M8nq}gMbk;RncUbCV%>Bm zcLNK>tm8~bA(e4bOGG*Whr|s|&P)kCbw5$!zb4c1GJ;+e=bxzqO+y+Sc`1trprTnN8%z%p09TF_X`ctu5N# z+J1?`bcz{7P!~a+%*mNzy^h%dO5YGrp(T5OzL35JHDsI>ybkoX;0Rg~97SUUX>}h6 z7DypNKLZJe!qsr&s>9^bNWIhq?z{O&wKVY!DIG;CY9FBHK{TQJ(bO2?H^hq+S{~!K z!P5|Ej0f}>>E8yQV2sspFMzy>8d_fa3y>42!409;L23iF7lF*88Y_jd%vjgZ91b=_&RyBC z%xJ2?C_=_ybFiVl{?htQ_*Dfrh+xAi{QN^}!ECOthb|liuBpaq2{w?^h06zEnhD0|-G>pGBEG0sh7OIiSC9|cJBZ`Hj5EJQ4 zHXlusL9t2s33wd@0^**X1Z>tA;sD-{bd9W92<19o?p z-bpZ)E5$}KZjpn^_}TneR7Q6vC!8Y2gn6pyrtkrMYY9zGX@ndaUogRl5w2fSw=-N* zvm<j&P)=?(J~>r=|-!b>9seHNjPNmj!BY)F1C>jReOysj=K>F_zAc zJH=Qc^`(4vGS;6@md2f&Ta0ye*wRfoi~hlZelgHHEQaHQyLXB!hXw}rifw!L?X-t` zcMj|pMdeMK1zbnSZ3c;?NZcrr=|q9fYD{Gkt@0FZ265fQ_=G6sikY#TlQNM|Y&xL4 zc6QkAoW7XO7ueF?4GWzN;m!+*6Te`g3oInwFMEx2e=uOVIcQ0fDONi^ z2K|>--@jS^eJ~4+|3{1Hn-`aJ1z-Yu

_H2?=vxy zvE9TNDT;0hp8+OC$|*QwnWF0yY)kbA z5A5!@ZDIFcv%7cKU?2LxrY?IRuC4L@eZt;8v}bGYkiBQywkrpQF{f=E8UVt(b;{zM zQnWkDNhREbki*qmsw!sMNQJ|PUG1KNFmEdrY{k5tPUKQqN7#dV;DuX?T`D>$^qWJI z%Gw1dn@?gkm2+w)X-{O}YmXF*y3e_(R8F_HJ-n-r50w&wEsn*>aW^pn>J}7DGlx0W zDNKlHF7G-~-1(vth5Uq5a3`x&Bc%+s*=15%)w^}DmCn0#$6Kbfh^8iU2%)H3P!|0_ zIZv=*!{HUH2UguIDR18Hb?U%vP8k6z7t~{#o ze7rn<_G5Z0@U&)Snb)l|8qe!o@A!ED_ktl;#`8M)H4mQS^LY69Y3)U>TTx{RTbe4u zeuO99i+>0@$_W-Qs_^|KqD1wHT{|3~pEG$s{s}rb6pqJ~&m%ook_+Q`Kk{shQ1omzzc8NZUtzAs3(Hb~HbqQD zDlOxf1^}+c^K+)D@r%Xh4(T5p)EAGRpWE6rp5w4T#i}k#b$sn!F){v%ibgSvXL^pt zd)&nBxtXTwK+o4cDuLgtn;@cL%zoGHA2jCIKWg722{to@aq5mIL7sgl9 z%5S&Iv2CLg4(JneK1BMb3ZD<27wP|xeC`xNwMTjseT)NXqer9_#e(?0OBG +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/07/07 16:12:20 by adjoly #+# #+# */ +/* Updated: 2024/07/07 17:56:28 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "philo.h" +#include "philo_msg.h" + +void log_philo(uint32_t timestamp, uint16_t philo, t_philo_state type) +{ + if (type == EAT) + printf("%u %hu %s", timestamp, philo, EATING_MSG); + else if (type == THINK) + printf("%u %hu %s", timestamp, philo, THINK_MSG); + else if (type == SLEEP) + printf("%u %hu %s", timestamp, philo, SLEEP_MSG); + else if (type == DIED) + printf("%u %hu %s", timestamp, philo, DIED_MSG); + else if (type == FORK_TAKEN) + printf("%u %hu %s", timestamp, philo, FORK_MSG); +} diff --git a/philo/src/philo.c b/philo/src/philo.c new file mode 100644 index 0000000..2640641 --- /dev/null +++ b/philo/src/philo.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* philo.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/07/07 15:10:29 by adjoly #+# #+# */ +/* Updated: 2024/07/07 17:44:08 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "philo.h" + +int main(int ac, char **av) +{ + (void)ac; + (void)av; + log_philo(10, 5, DIED); +}