--- rpl/src/instructions_s1.c 2019/06/17 13:27:35 1.108 +++ rpl/src/instructions_s1.c 2019/07/16 08:31:22 1.109 @@ -19,7 +19,7 @@ ================================================================================ */ - +#define DEBUG_ERREURS #include "rpl-conv.h" @@ -3459,6 +3459,7 @@ instruction_syseval(struct_processus *s_ int pipes_entree[2]; int pipes_erreur[2]; int pipes_sortie[2]; + int registre_ios; int status; file *fpipe; @@ -3932,7 +3933,7 @@ instruction_syseval(struct_processus *s_ if ((*s_etat_processus).langue == 'F') { - printf("+++Système : erreurinterne dans SYSEVAL [%d]\n", + printf("+++Système : erreur interne dans SYSEVAL [%d]\n", (int) getpid()); } else @@ -4047,8 +4048,9 @@ instruction_syseval(struct_processus *s_ while((ios = (int) read_atomic_signal(s_etat_processus, pipes_sortie[0], &(tampon[pointeur]), - (size_t) longueur_lecture)) > 0) + (size_t) longueur_lecture)) >= 0) { +uprintf("lecture\n"); # ifndef SEMAPHORES_NOMMES while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) # else @@ -4103,6 +4105,7 @@ instruction_syseval(struct_processus *s_ } etape = 1; + registre_ios = ios; while((ios = getc(fpipe)) != EOF) { @@ -4125,7 +4128,7 @@ instruction_syseval(struct_processus *s_ } } - fclose(fpipe); + ios = registre_ios; break; } }