Make some array initializations variable.
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 2 Mar 2018 17:05:08 +0000 (18:05 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 2 Mar 2018 17:05:08 +0000 (18:05 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
philosophe-famine/philosophe.c
philosophe/philosophe.c
upipe/upipe.c

index bd7ea4e5266a9716d345bfddee377f70a58020a1..eb27f43c3a1c41f2e7e6eef78b6d2a7944e53e8f 100644 (file)
@@ -4,7 +4,7 @@
 #include <pthread.h>
 #include <semaphore.h>
 
-#define N 5
+#define N 10
 // nombre de philosophes
 #define G (i + 1) % N
 // fourchette gauche du philosophe i
@@ -14,7 +14,7 @@
 #define penser 0
 #define faim 1
 #define manger 2
-static int phiState[N] = { penser };
+static int phiState[N];
 
 sem_t mutex;
 sem_t semPhil[N];
@@ -61,12 +61,15 @@ static void *philosophe(void *num)
 
 int main()
 {
-       int i, NumPhi[N] = { 0, 1, 2, 3, 4 };
+       int i, NumPhi[N];
+       for (i = 0; i < N; i++)
+               NumPhi[i] = i;
+       for (i = 0; i < N; i++)
+               phiState[i] = penser;
        pthread_t th[N];
        sem_init(&mutex, 0, 1);
-       for (i = 0; i < N; i++) {
+       for (i = 0; i < N; i++)
                sem_init(&semPhil[i], 0, 1);
-       }
        // création des N philosophes
        for (i = 0; i < N; i++)
                pthread_create(&th[i], NULL, philosophe, &NumPhi[i]);
index 22923ceda26bc18858965e61823371811e2714af..f7b5107623b5404a7c4bd424ee4030749caf179d 100644 (file)
@@ -12,7 +12,7 @@
 // fourchette droite du philosophe i
 #define libre 1
 #define occupe 0
-static int fourch[N] = { libre };
+static int fourch[N];
 
 sem_t mutex;
 
@@ -42,7 +42,11 @@ static void *philosophe(void *num)
 
 int main()
 {
-       int i, NumPhi[N] = { 0, 1, 2, 3, 4 };
+       int i, NumPhi[N];
+       for (i = 0; i < N; i++)
+               NumPhi[i] = i;
+       for (i = 0; i < N; i++)
+               fourch[i] = libre;
        pthread_t th[N];
        sem_init(&mutex, 0, 1);
        // création des N philosophes
index 1264fb26a82f9c38ee4391e78f542bd7a1d6c02a..845fea2fed25fec2c8797a7a44fb1f141d1afed4 100644 (file)
@@ -11,7 +11,7 @@ int main()
        int fd[2];
        pipe(fd);               // création d'un tube anonyme
        char message[100];      // pour récupérer un message
-       int nboctets;
+       ssize_t nboctets;
        char *phrase = "message envoyé au père par le fils";
        if (fork() == 0)        //création d'un processus fils
        {
@@ -25,7 +25,7 @@ int main()
                close(fd[W]);
                // extraction du message du tube
                nboctets = read(fd[R], message, 100);
-               printf("Lecture %d octets : %s\n", nboctets, message);
+               printf("Lecture %zd octets : %s\n", nboctets, message);
                // fermeture du descripteur de lecture
                close(fd[R]);
        }