--- rpl/src/instructions_s1.c 2019/02/17 09:09:53 1.104 +++ rpl/src/instructions_s1.c 2019/02/28 12:40:38 1.105 @@ -3849,19 +3849,19 @@ instruction_syseval(struct_processus *s_ if (close(pipes_entree[1]) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; - return; + printf("%d\n",__LINE__); } if (close(pipes_sortie[0]) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; - return; + printf("%d\n",__LINE__); } if (close(pipes_erreur[0]) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; - return; + printf("%d\n",__LINE__); } if (pipes_entree[0] != STDIN_FILENO) @@ -3869,7 +3869,7 @@ instruction_syseval(struct_processus *s_ if (dup2(pipes_entree[0], STDIN_FILENO) == -1) { (*s_etat_processus).erreur_systeme = d_es_processus; - return; + printf("%d\n",__LINE__); } } @@ -3878,7 +3878,7 @@ instruction_syseval(struct_processus *s_ if (dup2(pipes_sortie[1], STDOUT_FILENO) == -1) { (*s_etat_processus).erreur_systeme = d_es_processus; - return; + printf("%d\n",__LINE__); } } @@ -3887,18 +3887,15 @@ instruction_syseval(struct_processus *s_ if (dup2(pipes_sortie[1], STDERR_FILENO) == -1) { (*s_etat_processus).erreur_systeme = d_es_processus; - return; + printf("%d\n",__LINE__); } } - if (nombre_arguments != 0) + if ((nombre_arguments != 0) && ((*s_etat_processus).erreur_systeme + == d_es)) { execvp(arguments[0], arguments); } - else - { - exit(EXIT_SUCCESS); - } /* * L'appel système execvp() a généré une erreur et n'a pu exécuter @@ -3927,6 +3924,17 @@ instruction_syseval(struct_processus *s_ write_atomic(s_etat_processus, pipes_erreur[1], " ", 1); close(pipes_erreur[1]); + if ((*s_etat_processus).langue == 'F') + { + printf("+++Système : erreurinterne dans SYSEVAL [%d]\n", + (int) getpid()); + } + else + { + printf("+++System : SYSEVAL internal error [%d]\n", + (int) getpid()); + } + exit(EXIT_SUCCESS); } else