From b92c10d3d820d59480a05a5310eb8f96a8676daa Mon Sep 17 00:00:00 2001 From: Ronan Fourneuve Date: Sun, 17 Aug 2025 13:25:54 +0000 Subject: [PATCH] Ajout exo5 --- ANALE-1/EXO2/SUJET/dijkstra.h | 2 ++ ANALE-1/EXO2/SUJET/p1.c | 5 ++++ ANALE-1/EXO5/launcher | Bin 0 -> 16416 bytes ANALE-1/EXO5/launcher.c | 54 ++++++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100755 ANALE-1/EXO5/launcher create mode 100644 ANALE-1/EXO5/launcher.c diff --git a/ANALE-1/EXO2/SUJET/dijkstra.h b/ANALE-1/EXO2/SUJET/dijkstra.h index 25abaef..35f2f23 100644 --- a/ANALE-1/EXO2/SUJET/dijkstra.h +++ b/ANALE-1/EXO2/SUJET/dijkstra.h @@ -9,6 +9,8 @@ */ int sem_create(key_t cle, int initval); + + /** * take a token on the semaphore semid or wait if none available */ diff --git a/ANALE-1/EXO2/SUJET/p1.c b/ANALE-1/EXO2/SUJET/p1.c index a9b8a1e..e300750 100644 --- a/ANALE-1/EXO2/SUJET/p1.c +++ b/ANALE-1/EXO2/SUJET/p1.c @@ -20,7 +20,12 @@ void t2() } int main () { + int semt1 = sem_create(CLE_SEM_T1,0); + int semt2 = sem_create(CLE_SEM_T2,0); + t1(); + V(semt1); t2(); + V(semt2); return 0; } diff --git a/ANALE-1/EXO5/launcher b/ANALE-1/EXO5/launcher new file mode 100755 index 0000000000000000000000000000000000000000..f2651a954ad5f5cc7ca53539dccf2f41c1429ac3 GIT binary patch literal 16416 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 b7v3Yj +#include +#include +#include +#include + + + +int main(void) +{ + int tube[2]; + int tube2[2]; + int res = pipe(tube); + if (res == -1) { + perror("Création Pipe"); exit(-1); + } + int res2 = pipe(tube2); + if (res2 == -1) { + perror("Création Pipe"); exit(-1); + } + + pid_t pid_wc = fork(); + if (pid_wc == 0) { + // lit depuis tube -> stdin + close(tube[1]); + dup2(tube[0], 0); + close(tube[0]); + + // écrit vers tube2 -> stdout + close(tube2[0]); // on ne lit pas tube2 ici + dup2(tube2[1], 1); + close(tube2[1]); + + execlp("cat", "cat",NULL); // ou "wc", "-c", NULL pour compter octets, etc. + perror("cat wc"); + _exit(1); + } + pid_t pid_data = fork(); + if (pid_data == 0) { + close(tube[0]); + write(tube[1],"Bonjour tous le monde\nJe m'appelle Ronan\n",strlen("Bonjour tous le monde\nJe m'appelle Ronan\n")); + close(tube[1]); + } + pid_t pid_read = fork(); + if (pid_read == 0) { + char temp[500]; + close(tube2[1]); + read(tube2[0],&temp,sizeof(temp)); + printf("%s",temp); + close(tube2[0]); + } + + return 0; +} \ No newline at end of file