From 1cb87a23e702e25e61a24c17081b56147f49fefd Mon Sep 17 00:00:00 2001 From: lecorre Date: Fri, 8 Oct 2021 15:33:49 +0200 Subject: [PATCH] ajout fichiers TP --- Controle/Exercice 1/A | Bin 0 -> 16240 bytes Controle/Exercice 1/A.c | 17 +++++++++++++++++ Controle/Exercice 1/A.o | Bin 0 -> 1984 bytes Controle/Exercice 1/B1 | Bin 0 -> 16240 bytes Controle/Exercice 1/B1.c | 17 +++++++++++++++++ Controle/Exercice 1/B1.o | Bin 0 -> 1848 bytes Controle/Exercice 1/C1 | Bin 0 -> 16080 bytes Controle/Exercice 1/C1.c | 8 ++++++++ Controle/Exercice 1/C1.o | Bin 0 -> 1400 bytes Controle/Exercice 1/C2 | Bin 0 -> 16080 bytes Controle/Exercice 1/C2.c | 8 ++++++++ Controle/Exercice 1/C2.o | Bin 0 -> 1400 bytes Controle/Exercice 1/Makefile | 18 ++++++++++++++++++ Controle/Exercice 1/ok.txt | 1 + ExerciceSignaux.c | 29 +++++++++++++++++++++++++++++ TP3/Ex1.c | 21 +++++++++++++++++++++ TP3/Ex2.c | 30 ++++++++++++++++++++++++++++++ TP3/Ex3.c | 30 ++++++++++++++++++++++++++++++ TP3/Ex4.c | 13 +++++++++++++ TP3/a.out | Bin 0 -> 16136 bytes TP3/fichier | 1 + TP3/fils1 | Bin 0 -> 16440 bytes a.out | Bin 0 -> 16240 bytes 23 files changed, 193 insertions(+) create mode 100755 Controle/Exercice 1/A create mode 100644 Controle/Exercice 1/A.c create mode 100644 Controle/Exercice 1/A.o create mode 100755 Controle/Exercice 1/B1 create mode 100644 Controle/Exercice 1/B1.c create mode 100644 Controle/Exercice 1/B1.o create mode 100755 Controle/Exercice 1/C1 create mode 100644 Controle/Exercice 1/C1.c create mode 100644 Controle/Exercice 1/C1.o create mode 100755 Controle/Exercice 1/C2 create mode 100644 Controle/Exercice 1/C2.c create mode 100644 Controle/Exercice 1/C2.o create mode 100644 Controle/Exercice 1/Makefile create mode 100644 Controle/Exercice 1/ok.txt create mode 100644 ExerciceSignaux.c create mode 100644 TP3/Ex1.c create mode 100644 TP3/Ex2.c create mode 100644 TP3/Ex3.c create mode 100644 TP3/Ex4.c create mode 100755 TP3/a.out create mode 100644 TP3/fichier create mode 100755 TP3/fils1 create mode 100755 a.out diff --git a/Controle/Exercice 1/A b/Controle/Exercice 1/A new file mode 100755 index 0000000000000000000000000000000000000000..aa43db1574f2c985771fbd961a7e67338db5e935 GIT binary patch literal 16240 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 literal 0 HcmV?d00001 diff --git a/Controle/Exercice 1/A.c b/Controle/Exercice 1/A.c new file mode 100644 index 0000000..e1cc8a5 --- /dev/null +++ b/Controle/Exercice 1/A.c @@ -0,0 +1,17 @@ +#include +#include +#include + +int main(int argc, char const *argv[]) { + char* arg[3] = {"B1", "1", NULL}; + if (!fork()) { + execvp("B1", arg); + } else { + if (!fork()) { + arg[1] = "2"; + execvp("B1", arg); + } + } + sleep(5); + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/Controle/Exercice 1/A.o b/Controle/Exercice 1/A.o new file mode 100644 index 0000000000000000000000000000000000000000..45530010b41c65c65ba97fb4a4a9d83a041d1126 GIT binary patch literal 1984 zcmbtU&1(};5T8xcv}#+b_E4yY?V(b&E?rMmQ1U^VJp==_!JF$g-I|zBHd|>G@lX^( z3HVp22M->-SrDw=`~y6A5d!v5@zR4(XEtxrm&fL!1DiMVo8Nrw%-cLmXO|exN!5{XHeMcJoK;)|IKC6@NHzeEFC( z!Gvo7nN;eAKA*XrzoeU{VH%4VL9eIdLwV2x5zzLeSH_uiZJx~(@<_DDE1+#nYBOUa zqc72U0Wo?=-qKHEV)8{KH6Dw+Mg{@lLV2U`>p09i6uJ?Bp`hFT2@+@; z{nWtH2jFu9@Pz?5jx{ttB#Z)7ol*_#Og5KHWbNGY@}2amy_!g7(>83>y)w94ZsAb_ znibb=fNeK@r%<*F#j?HOlq#4QWwv|ZUg*66{v3CO`XOOlz{fYcaIn`H>demxocWC3 zmG~nP|DJ@)c}hwiz86mvob&HUdF1?U38(A9{8tiwO2T!4Q~&hz#At3;eP<1frtfvn zB5R&oaSY$x^1)bldP}?*bUcKRZ{x-%? zCbwvBcuv*rmHr<^$6%Tr%~qDUF!=tmkLS$x3@Y@U#u*Uj8!?+TA%J8<^0!p6Jsf7-!9SS`gB)hQR`nvCt>s-Cd+SOoR>k=IiAm?gvrzx z6J#)iyMh??sP@luSNr1mbJ~X@ry9Q`>Mt=-oN7GX!m$0n6AR%z)Bfo@;&{fXj9MEZ rXo&iUWT1@ULv_@6%Bk)iA-FG+rpS;)9qU>2g~fjspfAOes>c5Xjkx9+ literal 0 HcmV?d00001 diff --git a/Controle/Exercice 1/B1 b/Controle/Exercice 1/B1 new file mode 100755 index 0000000000000000000000000000000000000000..6621b44fd9d578bf80c04d6638da311a809ae433 GIT binary patch literal 16240 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 literal 0 HcmV?d00001 diff --git a/Controle/Exercice 1/B1.c b/Controle/Exercice 1/B1.c new file mode 100644 index 0000000..60cb393 --- /dev/null +++ b/Controle/Exercice 1/B1.c @@ -0,0 +1,17 @@ +#include +#include +#include + +int main(int argc, char const *argv[]) { + char* arg[2] = {NULL, NULL}; + if (!fork()) { + if (argv[1][0] == '1') { + arg[0] = "C1"; + } else { + arg[0] = "C2"; + } + execvp(arg[0], arg); + } + sleep(5); + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/Controle/Exercice 1/B1.o b/Controle/Exercice 1/B1.o new file mode 100644 index 0000000000000000000000000000000000000000..5ba512363830273d527c3c6a5477d49c6ce56c52 GIT binary patch literal 1848 zcmbtU&1(};5T8xc59xxn{4LzH>f>yCkY|Q=>-(tUU}lSLXId=$$ih8d;2mXhYnM|RnRbp{ zoZ@|hK_2+Vw@av#gbfD)100#JOk1~eP zJ*njLJs>uUYw~C+_s;gg&-cM+`rudl;E=S;ER@`}GB^wA#pGPtS)8B0Z!bH`bIG*r zz-q-WfVb{tpH!h%^t>uKPAzb=1t*&?IIHej5i0{+=FiTY=pFwYbR;eC2x_{L5`UoK zBK@E$aGLF~lE10oG$vW+rGg(*@R-1;mp!d~-_i-E{F)BNc>l6;Bx>P@X4ivB;zK^enE keRMw6)Mt+n+!HT!ha5#j*)DPdtzP_u0E2F3$I$tI0l3h@X8-^I literal 0 HcmV?d00001 diff --git a/Controle/Exercice 1/C1 b/Controle/Exercice 1/C1 new file mode 100755 index 0000000000000000000000000000000000000000..1210dd18aa274ba36b7b4f421efa9dd5998fa111 GIT binary patch literal 16080 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 Q{(k(!1nE`}!6S-)1F||3w*UYD literal 0 HcmV?d00001 diff --git a/Controle/Exercice 1/C1.c b/Controle/Exercice 1/C1.c new file mode 100644 index 0000000..4fa6daa --- /dev/null +++ b/Controle/Exercice 1/C1.c @@ -0,0 +1,8 @@ +#include +#include +#include + +int main(int argc, char const *argv[]) { + sleep(5); + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/Controle/Exercice 1/C1.o b/Controle/Exercice 1/C1.o new file mode 100644 index 0000000000000000000000000000000000000000..a0034d00f2174a91fd301d201a8d1f64d4661f86 GIT binary patch literal 1400 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 Q{QdZc3DT_|f=3kp2D~^ExBvhE literal 0 HcmV?d00001 diff --git a/Controle/Exercice 1/C2.c b/Controle/Exercice 1/C2.c new file mode 100644 index 0000000..4fa6daa --- /dev/null +++ b/Controle/Exercice 1/C2.c @@ -0,0 +1,8 @@ +#include +#include +#include + +int main(int argc, char const *argv[]) { + sleep(5); + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/Controle/Exercice 1/C2.o b/Controle/Exercice 1/C2.o new file mode 100644 index 0000000000000000000000000000000000000000..fcb1a382309aef59440cf05343d428d1c00abe70 GIT binary patch literal 1400 zcmbtTOG_L<5UyE`uV~o#0Kpu_i%B49vN?$d*>%|mvP4Mq6v8;W>8NC9cbOSs6~u!e z?9HP;!DEiODR|L;;YG+HhvY7pDyM4gH0vcP=>ER?>d{Tt%zmL#OgRpSIj{)#o~Qux zse7Kiqgfb(QCKT?uFD5M)1AGWa%cP3=_8E&p!j#%F3+Kq&o8(yO7GTQx|xj1s5hho z^y6}IQ9cGC1~2+OdL0KmkS>wrkR^C`+yGlx2gt#ztsS*R9RWdRlJpA@k3$NTg@$1 z3LZptty=(7+>G9Y-st8wF_(23hcOZW73~DEUqy_=1UH3+y6&r3w_{MB{n!UpjUrIB zW)SEGYK>;B70%#w6#KQW>~A!-RV!?^bQte|y6d1fy)U63XuiS!fs5rd1A14}vh28~ zh@5gwn?Z-(CTohwk2!Ig^$|ppmwK*!Pn6<1kc_P*1!5gcIf^k?y66b*|VqM1t-?K JnF+D${{UnoUt$0N literal 0 HcmV?d00001 diff --git a/Controle/Exercice 1/Makefile b/Controle/Exercice 1/Makefile new file mode 100644 index 0000000..c3601b0 --- /dev/null +++ b/Controle/Exercice 1/Makefile @@ -0,0 +1,18 @@ +CC=gcc + + +A: A.o B1 + $(CC) -o A A.o + +B1: B1.o C1 C2 + $(CC) -o B1 B1.o + +C1: C1.o + $(CC) -o C1 C1.o + +C2: C2.o + $(CC) -o C2 C2.o + + +run: + A \ No newline at end of file diff --git a/Controle/Exercice 1/ok.txt b/Controle/Exercice 1/ok.txt new file mode 100644 index 0000000..f3a9a4b --- /dev/null +++ b/Controle/Exercice 1/ok.txt @@ -0,0 +1 @@ +watch -n 1 ps -o cmd -C A,B1,C1,C2 --forest dans un autre terminal \ No newline at end of file diff --git a/ExerciceSignaux.c b/ExerciceSignaux.c new file mode 100644 index 0000000..252b00f --- /dev/null +++ b/ExerciceSignaux.c @@ -0,0 +1,29 @@ +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + pid_t pid; + int status; + + pid = fork(); + + + if (pid != 0) { + printf("le pid du fils est %d\n", pid); + waitpid(pid, &status, WUNTRACED); + + if (WIFSIGNALED(status)) { + printf("tué par le signal %d\n", WTERMSIG(status)); + } else if (WIFSTOPPED(status)) { + printf("arrêté par le signal %d\n", WSTOPSIG(status)); + } + } else { + while(1){} + } + +exit(EXIT_SUCCESS); + +} \ No newline at end of file diff --git a/TP3/Ex1.c b/TP3/Ex1.c new file mode 100644 index 0000000..7885bf0 --- /dev/null +++ b/TP3/Ex1.c @@ -0,0 +1,21 @@ +#include +#include +#include +#include +#include + +int main(int argc, char const *argv[]) { + pid_t pid; + pid = fork(); + char *lel[3] = {"ls", "-l", NULL}; + if (pid==0) { + printf("pid de mon papa : %d\n", getppid()); + execvp("ls", lel); + + } else { + printf("pid de mon fiston : %d\n", pid); + wait(NULL); + + } + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/TP3/Ex2.c b/TP3/Ex2.c new file mode 100644 index 0000000..fc43912 --- /dev/null +++ b/TP3/Ex2.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) { + pid_t pid; + int i; + if (argc < 2) { + perror("Pas assez d'arguments"); + return EXIT_FAILURE; + } + if (argc > 9) { + perror("Trop d'arguments"); + return EXIT_FAILURE; + } + pid = fork(); + + if (pid==0) { + printf("pid de mon papa : %d\n", getppid()); + execvp(argv[1], argv+1); + + } else { + printf("pid de mon fiston : %d\n", pid); + wait(NULL); + + } + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/TP3/Ex3.c b/TP3/Ex3.c new file mode 100644 index 0000000..21fdf95 --- /dev/null +++ b/TP3/Ex3.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include +#include +#include +int main(int argc, char *argv[]) { + int pid, fp, i, j; + char ch[4]; + + fp = open("fichier", O_RDWR); + pid = fork(); + + if (pid == 0) { + for (i = 0; i < 4; i++) { + read(fp, ch, 4); + printf("hello fils : %s\n", ch); + sleep(4); + } + } else { + for (j = 0; j < 3; j++) { + read(fp, ch, 4); + printf("Hello père : %s\n", ch); + sleep(5); + } + wait(NULL); + close(fp); + } + return 1; +} \ No newline at end of file diff --git a/TP3/Ex4.c b/TP3/Ex4.c new file mode 100644 index 0000000..8bf9de9 --- /dev/null +++ b/TP3/Ex4.c @@ -0,0 +1,13 @@ +#include +#include + +int main(int argc, char const *argv[]) { + int i = 0; + char* envstr = getenv("RUN_0"); + while(envstr != NULL) { + printf("%s", envstr); + i++; + envstr = getenv("RUN_"+ (i+30)); + } + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/TP3/a.out b/TP3/a.out new file mode 100755 index 0000000000000000000000000000000000000000..745714af3d04f987bdaa82445b7977ce77764472 GIT binary patch literal 16136 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 gw;jY1ZMMY2j^JD`8{%@klK;M1& literal 0 HcmV?d00001 diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..33ba0f2e86048187d8c40df3e48afbc9ffd4e166 GIT binary patch literal 16240 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