diff --git a/SCR3.1/TP4/Exo1/Rebours b/SCR3.1/TP4/Exo1/Rebours new file mode 100755 index 0000000..37d6bdb Binary files /dev/null and b/SCR3.1/TP4/Exo1/Rebours differ diff --git a/SCR3.1/TP4/Exo1/Rebours.c b/SCR3.1/TP4/Exo1/Rebours.c new file mode 100644 index 0000000..90ce52c --- /dev/null +++ b/SCR3.1/TP4/Exo1/Rebours.c @@ -0,0 +1,19 @@ +#include +#include +#include + +int main(int argc, char *argv[]) +{ + int n = (int)strtol(argv[1], NULL,0); + int pid = getpid(); + printf("%d: debut\n", pid); + + for (int i = n; i > 0; i--) { + printf("%d: %d\n", pid, i); + sleep(1); + } + + printf("%d: fin\n", pid); + + return 0; +} diff --git a/SCR3.1/TP4/Exo2/parexec b/SCR3.1/TP4/Exo2/parexec new file mode 100755 index 0000000..ee5a9cd Binary files /dev/null and b/SCR3.1/TP4/Exo2/parexec differ diff --git a/SCR3.1/TP4/Exo2/parexec.c b/SCR3.1/TP4/Exo2/parexec.c new file mode 100644 index 0000000..cad02cd --- /dev/null +++ b/SCR3.1/TP4/Exo2/parexec.c @@ -0,0 +1,20 @@ +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) { + int n = argc - 2; + pid_t pids[n]; + + for (int i = 0; i < n; i++) + { + pids[i] = fork(); + } + for (int i = 0; i < n; i++) + { + waitpid(pids[i], NULL, 0); + } + return 0; +} diff --git a/SCR3.1/TP4/Exo2/rebour.c b/SCR3.1/TP4/Exo2/rebour.c new file mode 100644 index 0000000..4b8cd74 --- /dev/null +++ b/SCR3.1/TP4/Exo2/rebour.c @@ -0,0 +1,20 @@ +#include +#include +#include +#include + +int main(int argc, char* argv[]) +{ + assert(argc == 2); + + int value = strtol(argv[1], NULL, 0); + pid_t p = getpid(); + printf("%d: debut\n",p); + for(int i = value; i>0; i--){ + printf("%d: %d\n",p,i); + sleep(1); + } + printf("%d: fin\n",p); + return EXIT_SUCCESS; + +} diff --git a/SCR3.1/TP4/Exo2/rebours b/SCR3.1/TP4/Exo2/rebours new file mode 100755 index 0000000..e14f094 Binary files /dev/null and b/SCR3.1/TP4/Exo2/rebours differ