From fb7985cb67046b4736a58f2f517c236baaafa1b9 Mon Sep 17 00:00:00 2001 From: Denis Date: Tue, 11 May 2021 17:26:54 +0300 Subject: [PATCH] create logic block --- philo_one/Makefile | 8 ++--- philo_one/includes/philo_header.h | 1 + philo_one/obj/logic.o | Bin 0 -> 1820 bytes philo_one/obj/parser.o | Bin 2144 -> 2224 bytes philo_one/philo_one | Bin 50470 -> 50710 bytes philo_one/srcs/logic.c | 47 ++++++++++++++++++++++++++++++ philo_one/srcs/main.c | 1 - philo_one/srcs/parser.c | 2 ++ 8 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 philo_one/obj/logic.o create mode 100644 philo_one/srcs/logic.c diff --git a/philo_one/Makefile b/philo_one/Makefile index 942b953..899f5ee 100644 --- a/philo_one/Makefile +++ b/philo_one/Makefile @@ -1,6 +1,6 @@ .PHONY: all clean fclean re -SRCS = main.c utilc.c parser.c +SRCS = main.c utilc.c parser.c logic.c SRC_DIR = ./srcs/ @@ -18,7 +18,7 @@ vpath %.c $(SRC_DIR) CC = gcc RM = rm -f -CFLAGS = -Wall -Wextra -Werror -I ./includes/ +CFLAGS = -Wall -Wextra -Werror -I ./includes/ NAME = philo_one @@ -31,13 +31,13 @@ $(OBJ_DIR): mkdir -p obj $(NAME): $(OBJS_FILES) - $(CC) $(CFLAGS) -o $(NAME) $(OBJS_FILES) + $(CC) $(CFLAGS) -o $(NAME) $(OBJS_FILES) -lpthread clean: $(RM) $(OBJS_FILES) $(OBJ_DIR)%.o: %.c $(HEADER) - $(CC) $(CFLAGS) -c $< -o $@ + $(CC) $(CFLAGS) -c $< -o $@ fclean: clean $(RM) $(NAME) diff --git a/philo_one/includes/philo_header.h b/philo_one/includes/philo_header.h index 90b7684..cf4aa2a 100644 --- a/philo_one/includes/philo_header.h +++ b/philo_one/includes/philo_header.h @@ -23,5 +23,6 @@ t_all *structalloc_and_bzero(void); int parse_and_check_values(char **argv, int quantity); int ft_atoi(const char *str); int check_f(char ch); +int runner(t_all *all, int optional); #endif diff --git a/philo_one/obj/logic.o b/philo_one/obj/logic.o new file mode 100644 index 0000000000000000000000000000000000000000..22eaa60092036d73d7c3259e529196ab85825e33 GIT binary patch literal 1820 zcmbVNPe_wt7=Lu8Q_F>UFbw>l0y`+qEIjzZw7SH1i1Oe;c$GQR)KAe*l8o5eRcHeb z9y)k*L9j?^_D2P~_bnnkc$hamba&CT-?Q(1o!bbj2cG?&-}C=vd*6Ne`Qz{`Q3*l# zqYRp0LxVytLOZh2EG_!jEOlJlGDq}VIeX^#jCn2F5UYne$EijV6v9dDkD%^6V>!`0kfZmYELBpu|2b&E>hPQ{ zM`224=1O9jTNF)IPp`4^rsCdArEN{*i9-CKXv&(>#BX}U6<1vb8Fq? zF7A!naM*;3V%-u2Mhp2xSgOw^vjT;6+Qt1*G|)it4h8TQhaNMz=6 zJ?ss8J^9>Tx8G}5r!}^dK|5~0$$I1VhbppK$^K-oYW7EDy-kL-WC+GPd&Q0;d0sow z!D>ai_wUoaRRy{B2Bs&n16DC0fx!tLk_;tZXjm~f3w!Xi{LTKY9Mkiq)1kNx`6B(a z^M`o7yyx86o}u1G3%f{4CMMjAnt_G@1WiXCz3ytIir$?B# zEBTJ(U6MDThQ)%OoEKn@gRA$C%RKn#1hQO!GFRUxzJo017|S&%*C_GAILR9dIEkSd z(~m!kX^X~03*LAVQ!}O+08U!NQ-Og&@n~Yi1jFlZ4duLk#H@fUYPqS58_H-`#&sIA S#wXhpg#qeS6b5K3@B14*+Jcb) literal 0 HcmV?d00001 diff --git a/philo_one/obj/parser.o b/philo_one/obj/parser.o index 01a56e751f12b1da195cc27a11fd987edf110e96..368455bec8bcfcd23cbf4d601303e0e8bbcb5279 100644 GIT binary patch delta 722 zcmZ`%KS&!<9R9srE_X4B$q+LFNrnm81k z#N!FBQ4kU*#U+^(u0u!N94|{T(9t0QL;YUvh0sDD_xRrT=l$OCe$Pvs8he(J2~uy| zFds9{Vs7M}G7tk;>LH>r=Xl!a8=riiW}Q}U^h&1RO0lXE2}#%Z9D5lX(}?1r37x3I zzcZ7m{ER*2mn?dI!(InID(t#jRBBz9oQh($58cOg#P_`jb*k>0x;a9d%>XTX5vy~g z7B#i=23t+>??Rb!$m_kzZ#JX)9+Fe+}o-Yw48{wRz`)GfZFTEPS^nIE!b z$;SN*5lvaZC~y{tM%XhxW}iuY0*D6KX&r*YEYNc9 delta 629 zcmZ8fze~eF82zs4kEpGt*di*J1_Zk}h-h^vt)+uPmKGg!QJm^n97G)2MRC(`4vsED zl?oLd>ZH)c(XnF`hx!Ky78HHgTxjvg<$dpc-@Qw|yIR=RPSau4OP$eV4yslz6mNQLj5SM03DXOiS=Ma+QW& zj}b+B^+#yq&^msjR5W`046G4r?XFjU*NlI9<73#_mOBcki^gXC=OAWj-XB3HYbyW% diff --git a/philo_one/philo_one b/philo_one/philo_one index d5a26e70f09b3ea406c359c4e7044576299ba1c1..bf58e53d7b4d36ddccc2ab2472e9527c29379e66 100755 GIT binary patch delta 2178 zcmb7F4Qx|Y6h800b?eyJx~`1jGWw8FOBB~lH@bG+io`fVL?8qgWR}u(7B;rAc5^zk zLJ;^PIeDj z$ToE6mBr9)G!eGEGIEajgGnT3*fz#MmT);t5^-{mW*B@jnFIqckO21_o0Uj@<4g~` z(7Cf8U=&9dC7ap<02&-2jKYv*30cXhs7*&nB7!1EF+7Ntup*OmCg@d9*etuf=A!Ha zFg_XcCN%CRxX&=p80ui~~W>!1(is!Y!Yp+xoL@Q5Weh)p$F% zYwtuCgFq)}E$~GBPx%Z2hod9aEG)qwtbsZil54jDtdf#un*}TSqjUcyZrCiC9~Aek zStz7&Slba?6c+qxx+1j_l#|JKlnQwG9Z}o?1wDrPKQKOvz{mV6>265K!sm`+;SK>j zNwW`N!Re{sE;M>9@FCJ;$y}r5x$jgOwh~zF1*+f7oYciQy*p0#$LWo-zB!XsN%7D0 zbr=!{9w7D?M*#uRa?1-^DTuw)=4QgtjmAuoRHDY&SGseZzoMG(sxEGhR0vFR_uWNR?;T%Tn@F33Lf?a1T zc9&@v!iNM`QCYW>JHS*9v%6S7TZ)8IyMcWgz8D5lFrf9Gmj54G^rj=?1fBy0;^!sV z#^RVwA3-|bzc6N7WqU2&YKmVf+xPxQD`Z=RA3UAMXGw}rFvaYanC%6le73L4fNFUG z@5?qX6YNDB6VY5!>%uqjrVt*sqOD7XvnF63csWg;y6ctJaiW(&o<$-gg zWUwN+=H3Al@8ANZd@*eF-YBGVCj*1?a;IL+`!>CltzW=Tl~u!=lvvc$j7&}-5!qWIub{IwYRR;RXy{l4R&_BS5a_BwCxO`EIR*W33s`~|V;l~e!# delta 1325 zcmZ8geP|nH7=P|ASJG@tvov;*uH?FE%{D)3B`(%{oDMcO$3C=!h>+VYz0s}dnzU(| zjpafWaZ*Q)w^aY=LS&;R`bRhN$0B94+eJ2zN)cA7BG##6vMNPItlOy19?=u107@-aho@Y%dpE6#^ zdv?;4nf$)vP5KTL_Ij_;QZF3n7LT8V z*CU-$q)UL%v4j98h^*Gh?@}?bw@(t_45jrF1GyM>)iIEe7Q5jz#Xu^KjF{*-4ucUf z8tsXI%)n9{bN^1@@bLf+%LACBmwZl%Cp!dvr2#S8FZIC%R4KlNX{DsL%UmoJeV;i` zg|5@q5pC5=XjZ%ijwn}Late<^ducAT8l1#l)bW!BUNYiZw`lQ1n;z#4{NSbTGH}VS z$HN9L`gGi7V5gx!j2Pu)ZSC@x#u33oJhldB*5HXXSbKfz(AJ}20+o=s$2Z6ZIYO$=s{dum&iYU5~Fk1x8J94$GxKUzNg&D%9|v8$n98k-8f z{j~UFhcftm|Bg>b_R;U0K10SzJg4@=-tb-K5C5`Z=eg44iEpz{#V2~fonFd)*LiK| zVut)vN^zTK8@C0XIQmsMw;bJS3Xe`EGM=-4wI{1Kr*6&XFW<+cBix<(@jUr;s=3=T a8oL_~&rW&vuF9oF=c&8HUk>g{`u+#$W>R?o diff --git a/philo_one/srcs/logic.c b/philo_one/srcs/logic.c new file mode 100644 index 0000000..0991a91 --- /dev/null +++ b/philo_one/srcs/logic.c @@ -0,0 +1,47 @@ +#include "../includes/philo_header.h" + +void *test(char *str) +{ + printf("поток %s отработал\n", str); + return(NULL); +} + +int func_test(t_all *all) +{ + pthread_t t0; + pthread_t t1; + void *result; + (void)all; + + if (pthread_create(&t0, NULL, (void*)test, "t0") == -1) // предпоследнее это функция и аргумент + { + printf("не могу создать поток t0\n"); + } + if (pthread_create(&t1, NULL, (void*)test, "t1") == -1) // предпоследнее это функция и аргумент + { + printf("не могу создать поток t1\n"); + } + + if (pthread_join(t0, &result) == -1) + { + printf("не могу присоединиться к потоку t0\n"); + } + if (pthread_join(t1, &result) == -1) + { + printf("не могу присоединиться к потоку t1\n"); + } + return (0); +} + +int runner(t_all *all, int optional) +{ + if (optional) + { + func_test(all); + return(0); + } + else + { + return(1); + } +} diff --git a/philo_one/srcs/main.c b/philo_one/srcs/main.c index 3a36598..4a25c98 100644 --- a/philo_one/srcs/main.c +++ b/philo_one/srcs/main.c @@ -9,6 +9,5 @@ int main(int argc, char **argv) printf("exit because error\n"); return (1); } - return(0); } diff --git a/philo_one/srcs/parser.c b/philo_one/srcs/parser.c index 2c9ddc9..3169ef7 100644 --- a/philo_one/srcs/parser.c +++ b/philo_one/srcs/parser.c @@ -60,6 +60,7 @@ int parse_and_check_values(char **argv, int quantity) if (!parse_param(all, 0, argv)) { printf("ok standart run\n"); + runner(all, 0); return(1); } else @@ -73,6 +74,7 @@ int parse_and_check_values(char **argv, int quantity) if (!parse_param(all, 1, argv)) { printf("ok run with optional\n"); + runner(all, 1); return(1); } else