diff --git a/processus/serie2/ex4/.gitignore b/processus/serie2/ex4/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..b6de771d2fff3a218dbc1b3de5b6b6cc1dc54e08
--- /dev/null
+++ b/processus/serie2/ex4/.gitignore
@@ -0,0 +1,2 @@
+*.o
+prog
diff --git a/processus/serie2/ex4/Makefile b/processus/serie2/ex4/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..df35d6384b9e9f177057b82986b6a1858455e9da
--- /dev/null
+++ b/processus/serie2/ex4/Makefile
@@ -0,0 +1,24 @@
+CC := clang
+CFLAGS := -g -pedantic -Wall -Wextra -std=c11
+LDFLAGS := -fsanitize=address -fsanitize=leak -fsanitize=undefined -lm -lpthread
+TARGET := prog
+
+all: $(TARGET)
+
+$(TARGET): prog.o
+	@printf "=================== Building executable ===================\n"
+	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
+
+%.o: %.c
+	@printf "=================== Building sources ===================\n"
+	$(CC) $(CFLAGS) -c $<
+
+.PHONY: clean
+
+clean:
+	@printf "=================== Cleaning up... ===================\n"
+	rm -f *.o $(TARGET)
+
+.PHONY: rebuild
+
+rebuild: clean all
diff --git a/processus/serie2/ex4/ex4.md b/processus/serie2/ex4/ex4.md
new file mode 100644
index 0000000000000000000000000000000000000000..9fdbbd5a32810ca62c48cf8e7ebbd35000e44be2
--- /dev/null
+++ b/processus/serie2/ex4/ex4.md
@@ -0,0 +1,24 @@
+# Exercice 4
+
+Soit le code :
+```c
+int main(int argc, char *argv[]) {
+    printf("Hello world!");
+    execlp("sleep", "sleep", "0", (char *)NULL);
+}
+```
+
+- Expliquez de manière détaillée pourquoi quand on exécute le programme ci-dessus, rien n’est affiché.
+    - La raison pour laquelle rien ne s'affiche lors de l'exécution du programme
+    est parce que le buffer de `stdout` ne jamais flushé par un retour à la ligne
+    `\n`.
+
+- Comment changer le code de manière minimale afin d’obtenir l’affichage attendu “Hello world!” ?
+    - Unique modification dans le code est le retour à la ligne explicite lors
+    de l'appel explicite à `printf()`
+    ```c
+    int main(int argc, char *argv[]) {
+        printf("Hello world!\n");
+        execlp("sleep", "sleep", "0", (char *)NULL);
+    }
+    ```
diff --git a/processus/serie2/ex4/prog.c b/processus/serie2/ex4/prog.c
new file mode 100644
index 0000000000000000000000000000000000000000..2194efd989caaededc70dd5ea7bd3f20dc698cde
--- /dev/null
+++ b/processus/serie2/ex4/prog.c
@@ -0,0 +1,11 @@
+#include <libgen.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+int main(int argc, char *argv[]) {
+    printf("Hello world!\n");
+    execlp("sleep", "sleep", "0", (char *)NULL);
+}