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)