From 87565cf26c09567f8de4b6f336c9ff6b5aae20d2 Mon Sep 17 00:00:00 2001 From: solar Date: Thu, 25 Sep 2025 13:53:00 +0200 Subject: [PATCH] tkt --- SCR3.1/TP3/Exo1/ex1-stdio.c | 12 +++++ SCR3.1/TP3/Exo1/ex1-syscall.c | 14 +++++ SCR3.1/TP3/Exo1/stdio | Bin 0 -> 70544 bytes SCR3.1/TP3/Exo1/syscall | Bin 0 -> 70496 bytes SCR3.1/TP3/Exo2/banane1 | 1 + SCR3.1/TP3/Exo2/banane2 | 1 + SCR3.1/TP3/Exo2/fork_and_fd1 | Bin 0 -> 70848 bytes SCR3.1/TP3/Exo2/fork_and_fd1.c | 42 +++++++++++++++ SCR3.1/TP3/Exo2/fork_and_fd2 | Bin 0 -> 70848 bytes SCR3.1/TP3/Exo2/fork_and_fd2.c | 42 +++++++++++++++ SCR3.1/TP3/Exo3/banane1 | 1 + SCR3.1/TP3/Exo3/banane2 | 1 + SCR3.1/TP3/Exo3/banane3 | 1 + SCR3.1/TP3/Exo3/copy1byte | Bin 0 -> 70792 bytes SCR3.1/TP3/Exo3/copy1byte.c | 45 ++++++++++++++++ SCR3.1/TP3/Exo3/copy1byte2 | Bin 0 -> 70840 bytes SCR3.1/TP3/Exo4/Exo4.c | 42 +++++++++++++++ SCR3.1/TP3/Exo4/Exo4prof.c | 1 + SCR3.1/TP3/Exo4/a.out | Bin 0 -> 70888 bytes SCR3.1/TP3/Exo5/V1 | Bin 0 -> 71096 bytes SCR3.1/TP3/Exo5/V2 | Bin 0 -> 71080 bytes SCR3.1/TP3/Exo5/V3 | Bin 0 -> 71176 bytes SCR3.1/TP3/Exo5/v1.c | 68 +++++++++++++++++++++++ SCR3.1/TP3/Exo5/v2.c | 83 ++++++++++++++++++++++++++++ SCR3.1/TP3/Exo5/v3.c | 96 +++++++++++++++++++++++++++++++++ 25 files changed, 450 insertions(+) create mode 100644 SCR3.1/TP3/Exo1/ex1-stdio.c create mode 100644 SCR3.1/TP3/Exo1/ex1-syscall.c create mode 100755 SCR3.1/TP3/Exo1/stdio create mode 100755 SCR3.1/TP3/Exo1/syscall create mode 100644 SCR3.1/TP3/Exo2/banane1 create mode 100644 SCR3.1/TP3/Exo2/banane2 create mode 100755 SCR3.1/TP3/Exo2/fork_and_fd1 create mode 100644 SCR3.1/TP3/Exo2/fork_and_fd1.c create mode 100755 SCR3.1/TP3/Exo2/fork_and_fd2 create mode 100644 SCR3.1/TP3/Exo2/fork_and_fd2.c create mode 100644 SCR3.1/TP3/Exo3/banane1 create mode 100644 SCR3.1/TP3/Exo3/banane2 create mode 100644 SCR3.1/TP3/Exo3/banane3 create mode 100755 SCR3.1/TP3/Exo3/copy1byte create mode 100644 SCR3.1/TP3/Exo3/copy1byte.c create mode 100755 SCR3.1/TP3/Exo3/copy1byte2 create mode 100644 SCR3.1/TP3/Exo4/Exo4.c create mode 100644 SCR3.1/TP3/Exo4/Exo4prof.c create mode 100755 SCR3.1/TP3/Exo4/a.out create mode 100755 SCR3.1/TP3/Exo5/V1 create mode 100755 SCR3.1/TP3/Exo5/V2 create mode 100755 SCR3.1/TP3/Exo5/V3 create mode 100644 SCR3.1/TP3/Exo5/v1.c create mode 100644 SCR3.1/TP3/Exo5/v2.c create mode 100644 SCR3.1/TP3/Exo5/v3.c diff --git a/SCR3.1/TP3/Exo1/ex1-stdio.c b/SCR3.1/TP3/Exo1/ex1-stdio.c new file mode 100644 index 0000000..4bc5de2 --- /dev/null +++ b/SCR3.1/TP3/Exo1/ex1-stdio.c @@ -0,0 +1,12 @@ +#include +#include +#include + + +int main(){ + + printf("NON"); + if (fork()) { + printf("OUI\n"); + } +} diff --git a/SCR3.1/TP3/Exo1/ex1-syscall.c b/SCR3.1/TP3/Exo1/ex1-syscall.c new file mode 100644 index 0000000..1b46b6a --- /dev/null +++ b/SCR3.1/TP3/Exo1/ex1-syscall.c @@ -0,0 +1,14 @@ +#include +#include +#include + + +int main(){ + + //printf("NON"); + write(STDOUT_FILENO,"NON",3); + if (fork()) { + //printf("OUI\n"); + write(STDOUT_FILENO,"OUI\n",4); + } +} diff --git a/SCR3.1/TP3/Exo1/stdio b/SCR3.1/TP3/Exo1/stdio new file mode 100755 index 0000000000000000000000000000000000000000..e24fefe533ec002d2cc3b4526558e67b9100e588 GIT binary patch literal 70544 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 literal 0 HcmV?d00001 diff --git a/SCR3.1/TP3/Exo1/syscall b/SCR3.1/TP3/Exo1/syscall new file mode 100755 index 0000000000000000000000000000000000000000..3386f12250b9f2edce7ff4ac0022086b259f0751 GIT binary patch literal 70496 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#define msg1 "je suis le pere" +#define msg2 "je suis le fils !!!" + +int main(int argc,char * argv[]){ + + int outfd; + pid_t p; + + if (argc != 2){ + + printf("%s file\n",argv[0]); + exit(1); + } + + //p=fork(); + outfd = open(argv[1],O_WRONLY|O_CREAT,0644); + assert(outfd >= 0); + p=fork(); + switch(p){ + case (pid_t)-1 : + perror(NULL); + exit(2); + + case (pid_t)0 : + write(outfd,msg2,strlen(msg2)); + break; + default : + write (outfd,msg1,strlen(msg1)); + break; + } + close(outfd); +} diff --git a/SCR3.1/TP3/Exo2/fork_and_fd2 b/SCR3.1/TP3/Exo2/fork_and_fd2 new file mode 100755 index 0000000000000000000000000000000000000000..2bbb9e608ce8b8320d90faf309bf1a042e1d3c37 GIT binary patch literal 70848 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#define msg1 "je suis le pere" +#define msg2 "je suis le fils !!!" + +int main(int argc,char * argv[]){ + + int outfd; + pid_t p; + + if (argc != 2){ + + printf("%s file\n",argv[0]); + exit(1); + } + + p=fork(); + outfd = open(argv[1],O_WRONLY|O_CREAT,0644); + assert(outfd >= 0); + //p=fork(); + switch(p){ + case (pid_t)-1 : + perror(NULL); + exit(2); + + case (pid_t)0 : + write(outfd,msg2,strlen(msg2)); + break; + default : + write (outfd,msg1,strlen(msg1)); + break; + } + close(outfd); +} diff --git a/SCR3.1/TP3/Exo3/banane1 b/SCR3.1/TP3/Exo3/banane1 new file mode 100644 index 0000000..a13ba16 --- /dev/null +++ b/SCR3.1/TP3/Exo3/banane1 @@ -0,0 +1 @@ +jvhbdnsqcvhbsdhhdbkjabd,v diff --git a/SCR3.1/TP3/Exo3/banane2 b/SCR3.1/TP3/Exo3/banane2 new file mode 100644 index 0000000..a13ba16 --- /dev/null +++ b/SCR3.1/TP3/Exo3/banane2 @@ -0,0 +1 @@ +jvhbdnsqcvhbsdhhdbkjabd,v diff --git a/SCR3.1/TP3/Exo3/banane3 b/SCR3.1/TP3/Exo3/banane3 new file mode 100644 index 0000000..a13ba16 --- /dev/null +++ b/SCR3.1/TP3/Exo3/banane3 @@ -0,0 +1 @@ +jvhbdnsqcvhbsdhhdbkjabd,v diff --git a/SCR3.1/TP3/Exo3/copy1byte b/SCR3.1/TP3/Exo3/copy1byte new file mode 100755 index 0000000000000000000000000000000000000000..6b1361555baf283a2a9f8656ceb594489d42a0f7 GIT binary patch literal 70792 zcmb<-^>JfjWMqH=W`^wyU>*lV!~sGvc<_Qn!8`{B3kFUG2L@RN83r~61_l-e1_qcq zbovKW8;ph;%fJlPXTbzEk^!BTh6ppjXs9t@x3NOyuu)UEA)+vv0jvW;g4}xIFGT*t zUxE&q>kE$;>OQ&`nG%O3pAd(JRi^GlZlE5e5cu9J~94GCUI8_3U3r(c53k*MDEN zU+ zg3K2}aN#UD1_lOf;uQ=G3<_{n2!;Uz1A`KR3uj5D_;ILra1DQxC2q*i2>FvQ0v78j=$mBgndX67&yr6#5@C1GOJPOHvsUlk$s77(n_!$;gbs z-N)0(Io?Rm*aXfrG-rtS4DpRmNi9lE&nzxUEei2<&dJY94M|MONo9zSPtVQIgW4Jo zQHoU|GC!un7|N~2BkkHh6n}*22dIWDc>@28XG7@Cqc!ggZWGhxgbdf1_oF; z!VF5-AT^v2i3`y30w#U{T0q?R4@!9q3@~vKsQLtG`hfh@9EB`VxOmt&lnDV#!;EDsx@z)@-3=AKt_pkiG!0Wr@$g4zLdjH zfkQ}qIftJDkC6CEAp02+_N#&HN8)RN?1%6{?v`a}xFpBWaOo*C!>WhO4nH3$GfaHO z%rNl*1H%V~H|{@~85%CJFf?2``~Uy+C;$IX2aCUO|LMTMu;s@8|KgzV0ht5B42%pD z7#1*2WMpKRptyi>qCEq{>jMl7ArBcCJ}5qL|Cz|Zu;l|Y<0=Lw`D-A3=;{?27)~qw zslV*V)7Y)}$8qvO28Jz<7#Kb{eQ^Jo1lG$0*9)@mZ}mQKTz%$d_$kcDFd<=)qoo5Q zgDKdJPuzbtFfeQZ+hO4FbK(F0({KF$KV5;LAt+%HqvdCAho66|4}s$sWEKeD`Tt-1 zZ}lFqnGfU{c0S~0`1wHIVW&I~L!kmAL&yVeho1}#4nH3RD4fhJfJxdB*ws? zHE{+=J;)3Ph#5^L4MB7#J8N{{8aafq}u|@BjZWH-W@J?b?vP|Nn#B08$ES1AyGn@b~|J50HQ(pTb<0dCX3enf&hE zy$mjDK>9%Kg*AWw|A&>GG7Jn1Jq!#CbN>GSuL7z99QhpPa?E3Aa=&*MtO;b+C>{-g z(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R z7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7 zfzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c z4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C z(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R z7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7 zfzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c z4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C z(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R z7!85Z5Eu=C(GVC7fzc2c4S~@R7!3g$gn$4i#LxpA5SkG}F+@OV9w;rq4q@;@CQOhK@qo)j5txT? zDS(O_Km&%_G}L&81O`YsDQLK)CS@k(DHs~*8R;458k%UQq$U{}l^SY7gFaMP!upTFfoK+6=!Csz$(td086LH1~D_RGQiR&syG`w9ixh~Gr-~-Rh)wX zmQGN`IT>K-4^^Ct0hUft#km<^`4v^1hXEE}sN%fP)QT+1z`)GF2hZooGRzG83<0o= zh$O+xAi%H!tGFP;3#{To@Nxsm7zSnrVFp-vfhsP-fGzzpGl(+mfaY&h^jF(VWk{GH7NhGFns)v5P`5D*#|TIfXY!u286f*L^*>Pn8pl$h&h4` zf6&4WB90mUAQxhD56pZMaA^d#3`~IRXJX)GfQiG(L5OY>#b)Lub`0yOvFibsgO zf(#ST)V~6ok0}oF2ex$e1FZhzfAn&I5gb97<&Ov>C>}rlM=u{B{>3a0wHO%~gg};~ zVJjTs;fxFnpuB{poZ%Q)9J8D$W@KOxKuT9IeT|F^3`#H#61@_tz5uOUnhh2g$0)BB zf!xW2nNL@M)k`p-o3jO^9?3o!^9Wcyru#4AQ2z+*UzlzL{Sk+HCME_3K_<-n$j^j5 z{1rgzk?I{-`$(S&5}xS(It8{DQLcj0CCF7KIMmxf#nH=u53qX>`9cMp&KMYc!Qvnj zQE@EDolKbVlF5WUoiyVxXDSZybs%vj%<`EbIJv0AP%ocBC50hAJ~1gXz9cc7L8XEr zxu_&lFP|YfF()U!JT);pJ}nO7s} z?-}A7j|iL)UuRIzgd`^Aq%y?EClwb%^~E#9$0t`Lg1nxXlUbDtHv?orYD!{BA_GV+ z6RIgSFC{*nA-^CMVHrqaJV+tLM26&?{9;sN;?r~U^B}VE@eJifnI&lQDaHBm8Hsr* zIjIbZN%=*nzV!5uFD^;R%!@BAPEBEmPt60R6No#IJi-790EVK}#1s@C#E1Ag!vY)> zBCy1Q5*`IbnRz8?sQMC%i&KkA;?oi{b5JBe@y@`YS6rD}l9z4W|Ny`<92oD|*66sVA+lcz2yg@ffX5{ok!^inGGiYs#=bV(5dSf(ts zs5mn}4}}w7#GqG{nv)390A&^AlrZRl-K1BNT2aEF2TH;WdPVu52w~7m&44D_jFch- z526E-dLcSs?3Bv9#N5ne2EFwB5-_0$wg6&SQgJbZUUGhJZfaf$YS}>!57gfV6-lt} z3ap<4qe1e>=7Q8B^OYGG7(h)ln0{D)2u7S0iK9yAsJ(+}&fhcSTq zIiR*A#6_@i2N(?-XMo6p+7d7pgpOliU;y>$VfMrNbub#{f0+AW>R@y>0|NtSi~z=m z_5WbB0mK>xko!Sifw>J zGN3jSy8b?JdyE0>K9CWxekY8E*#nXTVf6U#MAHxJpTg)1AWcYE0ErD^PC?TT8Fhh; zzA!Mr@&QOK2s?lXBs>dEKWtnJM#K6=FfHirUjWq)3x8O@7)FP}G(u@u_(8c0E70`A z`p+=h2Br{7quaj?O+T!k4WrjU^}#4~`$6f051I!+YGC7dC;ozXn8N}v{V@6r0|Ns; zl73jf{Q{BtZ!kd84k&MeY=pJzZ$R}wfTllC`UlCw?1iO+hfx2+^uyZuJD@#tSpEU& z1!0(e82t=QKWx0<1yp|lND~r<>4VYl(e%T{6(SfQ4u`oDW&}(hjQ +#include +#include +#include +#include +#include +#include +#include +#include + +#define msg1 "je suis le pere" +#define msg2 "je suis le fils !!!" + +int main(int argc,char * argv[]){ + + int infd,outfd; + ssize_t nbread; + char buf[1]; + pid_t p; + + if (argc != 3){ + + printf("%s infile outfile\n",argv[0]); + exit(1); + } + + infd = open(argv[1],O_RDONLY); + assert(infd >= 0); + outfd = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0644); + assert(outfd >= 0); + + p=fork(); // <- decommentez cette ligne + + while(1){ + + nbread=read(infd,buf,sizeof(buf)); + if (nbread <=0 ) break; + write(outfd,buf,sizeof(buf)); + + } + + + close(infd); + close(outfd); +} diff --git a/SCR3.1/TP3/Exo3/copy1byte2 b/SCR3.1/TP3/Exo3/copy1byte2 new file mode 100755 index 0000000000000000000000000000000000000000..f7693afc560dd37c61442d1d5e8b2ea486782f2a GIT binary patch literal 70840 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 SC<8+Y4@4z1gn~< +#include +#include +#include + +int main() { + pid_t pid; + int status; + + pid = fork(); + + if (pid < 0) { + // Création du processus échoué + perror("fork"); + return 1; + } else if (pid == 0) { + // Processus fils + printf("Fils: %d\n", pid); + printf("Fils: Mon PID %d\n", getpid()); + printf("Fils: Celui du père %d\n", getppid()); + printf("Fils: je m'endors pour 4 secondes...\n"); + sleep(4); + exit(2); + } else { + // Processus père + printf("Père: fork() %d (le PID du fils)\n", pid); + printf("Père: mon PID %d\n", getpid()); + printf("Père: PID de mon père %d\n", getppid()); + printf("Père: attends la fin de mon fils...\n"); + wait(&status); + printf("Père: Code de retour : %d\n", WEXITSTATUS(status)); + + printf("Père: processus actifs...\n"); + execl("/bin/ps", "ps", "-ef", NULL); + + //Sera exécutée que si execl échoue + perror("execl"); + return 1; + } + + return 0; +} diff --git a/SCR3.1/TP3/Exo4/Exo4prof.c b/SCR3.1/TP3/Exo4/Exo4prof.c new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/SCR3.1/TP3/Exo4/Exo4prof.c @@ -0,0 +1 @@ + diff --git a/SCR3.1/TP3/Exo4/a.out b/SCR3.1/TP3/Exo4/a.out new file mode 100755 index 0000000000000000000000000000000000000000..276b6264e6fdf5ddd8fe9fae5ad034c69cb73979 GIT binary patch literal 70888 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 YQV=QaAVe7$=JP;QGD9f16dIQS0CS|WK>z>% literal 0 HcmV?d00001 diff --git a/SCR3.1/TP3/Exo5/V1 b/SCR3.1/TP3/Exo5/V1 new file mode 100755 index 0000000000000000000000000000000000000000..7c1da1a3b6c453a9381cf3aa4478cd0dd32369fd GIT binary patch literal 71096 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 literal 0 HcmV?d00001 diff --git a/SCR3.1/TP3/Exo5/V2 b/SCR3.1/TP3/Exo5/V2 new file mode 100755 index 0000000000000000000000000000000000000000..5252b03c9156263a3d4775b9c46ca0fd9c901545 GIT binary patch literal 71080 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 literal 0 HcmV?d00001 diff --git a/SCR3.1/TP3/Exo5/V3 b/SCR3.1/TP3/Exo5/V3 new file mode 100755 index 0000000000000000000000000000000000000000..e04c614ce767c1ba97538b97b9df3cfbc805b7fe GIT binary patch literal 71176 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 +#include +#include +#include +#include +#include + +#define SIZE 1000 + +int search(const unsigned char *t, int start, int end) { + int i; + for (i = start; i <= end; i++) { + if (t[i] == 0) { + return 1; + } + } + return 0; +} + +int main(int argc, char *argv[]) { + int i; + unsigned char arr[SIZE]; + int pipefd[2]; + pid_t pid; + int found_by_child = 0; + int found_by_parent; + + srandom(time(NULL)); + + for (i = 0; i < SIZE; i++) + arr[i] = (unsigned char)(random() % 255) + 1; + + printf("Entrez un nombre entre 0 et %d: ", SIZE - 1); + scanf(" %d", &i); + if (i >= 0 && i < SIZE) arr[i] = 0; + + if (pipe(pipefd) == -1) { + perror("pipe"); + exit(EXIT_FAILURE); + } + + pid = fork(); + if (pid == -1) { + perror("fork"); + exit(EXIT_FAILURE); + } + + if (pid == 0) { // Processus fils + close(pipefd[0]); // Ferme l'entrée du pipe + int result = search(arr, SIZE / 2, SIZE - 1); + write(pipefd[1], &result, sizeof(result)); + close(pipefd[1]); // Ferme la sortie du pipe + exit(EXIT_SUCCESS); + } else { // Processus père + close(pipefd[1]); // Ferme la sortie du pipe + found_by_parent = search(arr, 0, SIZE / 2 - 1); + read(pipefd[0], &found_by_child, sizeof(found_by_child)); + close(pipefd[0]); + wait(NULL); + + if (found_by_parent || found_by_child) + printf("Found !\n"); + else + printf("Not found !\n"); + } + + return EXIT_SUCCESS; +} diff --git a/SCR3.1/TP3/Exo5/v2.c b/SCR3.1/TP3/Exo5/v2.c new file mode 100644 index 0000000..d8bde23 --- /dev/null +++ b/SCR3.1/TP3/Exo5/v2.c @@ -0,0 +1,83 @@ +#include +#include +#include +#include +#include +#include +#include + +#define SIZE 1000 + +int search(const unsigned char *t, int start, int end) { + int i; + for (i = start; i <= end; i++) { + if (t[i] == 0) { + return 1; + } + } + return 0; +} + +int main(int argc, char *argv[]) { + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); + exit(EXIT_FAILURE); + } + + int n_procs = atoi(argv[1]); + if (n_procs < 1 || n_procs > 100) { + fprintf(stderr, "Number of processes must be between 1 and 100.\n"); + exit(EXIT_FAILURE); + } + + int i, status; + unsigned char arr[SIZE]; + pid_t pid; + int found = 0; + int chunk_size = SIZE / n_procs; + int remainder = SIZE % n_procs; + + srandom(time(NULL)); + + for (i = 0; i < SIZE; i++) + arr[i] = (unsigned char)(random() % 255) + 1; + + printf("Entrez un nombre entre 0 et %d: ", SIZE - 1); + scanf(" %d", &i); + if (i >= 0 && i < SIZE) arr[i] = 0; + + for (i = 0; i < n_procs; i++) { + pid = fork(); + if (pid == -1) { + perror("fork"); + exit(EXIT_FAILURE); + } + + if (pid == 0) { // Processus fils + int start = i * chunk_size; + int end = start + chunk_size - 1; + if (i == n_procs - 1) { // Le dernier fils gère le reste + end += remainder; + } + int result = search(arr, start, end); + exit(result); + } + } + + for (i = 0; i < n_procs; i++) { + waitpid(-1, &status, 0); + if (WIFEXITED(status)) { + if (WEXITSTATUS(status) == 1) { + found = 1; + } + } + } + + if (found) + printf("Found !\n"); + else + printf("Not found !\n"); + + return EXIT_SUCCESS; +} + diff --git a/SCR3.1/TP3/Exo5/v3.c b/SCR3.1/TP3/Exo5/v3.c new file mode 100644 index 0000000..23d50b2 --- /dev/null +++ b/SCR3.1/TP3/Exo5/v3.c @@ -0,0 +1,96 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#define SIZE 1000 + +int search(const unsigned char *t, int start, int end) { + int i; + for (i = start; i <= end; i++) { + if (t[i] == 0) { + return 1; + } + } + return 0; +} + +int main(int argc, char *argv[]) { + if (argc != 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); + exit(EXIT_FAILURE); + } + + int n_procs = atoi(argv[1]); + if (n_procs < 1 || n_procs > 100) { + fprintf(stderr, "Number of processes must be between 1 and 100.\n"); + exit(EXIT_FAILURE); + } + + int i, status; + unsigned char arr[SIZE]; + pid_t pids[n_procs]; + int found = 0; + int chunk_size = SIZE / n_procs; + int remainder = SIZE % n_procs; + + srandom(time(NULL)); + + for (i = 0; i < SIZE; i++) + arr[i] = (unsigned char)(random() % 255) + 1; + + printf("Entrez un nombre entre 0 et %d: ", SIZE - 1); + scanf(" %d", &i); + if (i >= 0 && i < SIZE) arr[i] = 0; + + for (i = 0; i < n_procs; i++) { + pids[i] = fork(); + if (pids[i] == -1) { + perror("fork"); + exit(EXIT_FAILURE); + } + + if (pids[i] == 0) { // Processus fils + int start = i * chunk_size; + int end = start + chunk_size - 1; + if (i == n_procs - 1) { + end += remainder; + } + int result = search(arr, start, end); + exit(result); + } + } + + for (i = 0; i < n_procs; i++) { + pid_t pid = waitpid(-1, &status, 0); + if (pid == -1) { + perror("waitpid"); + continue; + } + + if (WIFEXITED(status) && WEXITSTATUS(status) == 1) { + found = 1; + printf("Zéro trouvé ! Envoi de SIGTERM aux autres processus...\n"); + for (int j = 0; j < n_procs; j++) { + if (pids[j] != 0 && pids[j] != pid) { + kill(pids[j], SIGTERM); + } + } + break; // Sort de la boucle une fois le zéro trouvé + } + } + + // Attendre la fin des processus restants (ceux tués par SIGTERM) + while (wait(NULL) > 0); + + if (found) + printf("Found !\n"); + else + printf("Not found !\n"); + + return EXIT_SUCCESS; +}