diff --git a/minishell b/minishell index fa7603f..824d74a 100755 Binary files a/minishell and b/minishell differ diff --git a/minishell.c b/minishell.c index cb3d464..22c575a 100644 --- a/minishell.c +++ b/minishell.c @@ -38,7 +38,7 @@ int main(int argc, char *argv[]) // gestion de SIGCHLD struct sigaction action; - action.sa_flags = SA_SIGINFO; //| SA_RESTART; + action.sa_flags = SA_SIGINFO | SA_RESTART; action.sa_handler = handler_print; sigemptyset(&action.sa_mask); sigaction(SIGCHLD, &action, NULL); @@ -110,23 +110,13 @@ int main(int argc, char *argv[]) } else { // on attend le fils, si foreground - jmp_buf env; - setjmp(env); // sauvegarde pour un jump - int codeTerm; pid_t idFils = waitpid(pidFils, &codeTerm, 0); // on attend la fin de l'exec du fils if (idFils == -1) { // si le wait fail - if (errno == 4) - { - longjmp(env, 1); // si interruption du wait, on jump - } - else - { - fprintf(stderr, "ERROR: waiting for %d failed, (%d) %s\n", codeTerm, errno, strerror(errno)); - exit(errno); - } + fprintf(stderr, "ERROR: waiting for %d failed, (%d) %s\n", codeTerm, errno, strerror(errno)); + exit(errno); } if (codeTerm)