1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
...
static void calcLettre (int lstart, int lend)
{
int valstart, valend ;
int pid ;
pid = getpid () ;
while (read (lstart, &valstart, sizeof (int)) > 0 && read (lend, &valend, sizeof (int)) > 0) {
printf ("Valeur %d par le processus %d\n", valstart, pid) ;
printf ("Valeur %d par le processus %d\n", valend, pid) ;
}
// printf ("Valeur %d par le processus %d\n", val, pid) ;
close (lstart) ;
close (lend) ;
}
...
...
switch (fork()) {
case -1 :
perror ("fork") ;
return -1 ;
case 0 : /* fils */
/* ferme le tube en ecriture */
close (tubeslettre [filslettre][1]) ;
/* creation du fils */
calcLettre (tubeslettre [filslettre][0]) ;
/* terminaison du fils */
return 0 ;
default : /* pere */
/* ferme le tube en lecture */
close (tubeslettre [filslettre][0]) ;
}
... |
Partager