--- /dev/null
+#include <unistd.h>
+#include <stdio.h>
+#include <semaphore.h>
+
+static int db = 42;
+static int NbL = 0;
+sem_t mutex;
+sem_t redact;
+
+static void *lecteur(void *arg)
+{
+ while (1) {
+ sem_wait(&mutex);
+ if (NbL == 0)
+ sem_wait(&redact);
+ NbL++;
+ sem_post(&mutex);
+ // lecture de la base
+ sleep(1);
+ printf("lecteur bd=%d\n", db);
+ // fin de l’accès à la base
+ sem_wait(&mutex);
+ NbL--;
+ if (NbL == 0)
+ sem_post(&redact);
+ sem_post(&mutex);
+ }
+}
+
+static void *redacteur(void *arg)
+{
+ while (1) {
+ sem_wait(&redact);
+ // modifier les données de la base
+ db++;
+ printf("redacteur bd=%d\n", db);
+ sleep(2);
+ sem_post(&redact);
+ }
+}
+
+int main()
+{
+
+}