From a5476378697a60720205e8fe1a2d7c188764344b Mon Sep 17 00:00:00 2001 From: esterfreyja Date: Tue, 5 Dec 2023 17:32:24 +0100 Subject: [PATCH] TP1 ex3 --- TP1/ex3 | Bin 0 -> 17080 bytes TP1/ex3.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100755 TP1/ex3 create mode 100644 TP1/ex3.c diff --git a/TP1/ex3 b/TP1/ex3 new file mode 100755 index 0000000000000000000000000000000000000000..4848624af5d091b3087f44d5f0f6cb90b518663e GIT binary patch literal 17080 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 literal 0 HcmV?d00001 diff --git a/TP1/ex3.c b/TP1/ex3.c new file mode 100644 index 0000000..02224bc --- /dev/null +++ b/TP1/ex3.c @@ -0,0 +1,69 @@ +#include +#include +#include +#include +#include + +void my_putnbr(int nb) +{ + char c; + + if (nb < 0) + { + if (nb == -2147483648) + { + write(1, "-", 1); + write(1, "2", 1); + my_putnbr(147483648); + return ; + } + nb = nb * -1; + write(1, "-", 1); + } + if (nb >= 0 && nb < 10) + { + c = nb + '0'; + write(1, &c, 1); + } + if (nb >= 10) + { + my_putnbr(nb / 10); + my_putnbr(nb % 10); + } +} + +int main(void) +{ + pid_t pid; + int i; + int status; + + i = 0; + status = 0; + switch(pid=fork()) + { + case -1 : + write(2, "fork foireux\n", 13); + exit(errno); + case 0 : + while (i < 10) + { + my_putnbr(i); + write(1, "\n", 1); + nanosleep((const struct timespec[]){{0, 500000000L}}, NULL); + i++; + } + system("ps -f"); + exit(2); + default : + //waitpid plutot que wait, on sait jamais si un fils caché venait à se présenter... Ça ruine des marriages ce genre d'histoire + waitpid(pid, &status, 0); + write(1, "Code de retour du fils : ", 25); + my_putnbr(status); + write(1, ".\n", 2); + write(1, "Fin du processus père de pid ", 30); + my_putnbr(getpid()); + write(1, ".\n", 3); + } + exit(0); +}