From 64a3e1b1ca06a687f0cb2e0192905146b452232b Mon Sep 17 00:00:00 2001 From: rick Date: Sun, 21 Feb 2021 11:53:43 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20erreur=20si=20fork=20=C3=A9choue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/boitoutil/essential_shell.c | 6 +++++- src/shellOpt.c | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/boitoutil/essential_shell.c b/src/boitoutil/essential_shell.c index b3102a0..173dd12 100644 --- a/src/boitoutil/essential_shell.c +++ b/src/boitoutil/essential_shell.c @@ -21,7 +21,8 @@ * @message: message à afficher pour + d’infos ou erreur non implémentée * * 1 erreur lors de la création des pipes - * 2 chemin inexistant (pour cd) + * 2 chemin inexistant + * 3 erreur lors du fork */ void error(int code, int type, char *message) { @@ -33,6 +34,9 @@ void error(int code, int type, char *message) case 2: printf("Chemin inexistant.\n"); break; + case 3: + printf("Le fork a échoué, le processus enfant a été avorté.\n"); + break; default: if (message == NULL) diff --git a/src/shellOpt.c b/src/shellOpt.c index 654b95f..e169680 100644 --- a/src/shellOpt.c +++ b/src/shellOpt.c @@ -49,6 +49,9 @@ int main() if (!native_command(args)) /* si la commande demandée n’est pas native */ { pid = fork(); + if (pid < 0) + error(3, FATAL_ERROR, NULL); + if (!pid) /* le fils */ { if (commands[index+1] == NULL)