Bonjour a tous,
Dans mon code j'ai ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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]) ;  
    }
...
comment je peut passer deux variable a mes processus fils ?

Dans le switch j'ai ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
calcLettre (tubeslettre [filslettre][0]) ;
alors que ma fonction calcLettre est definit comme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
static void calcLettre (int lstart, int lend)
alors faut il 2tube pour chaque fils pour arriver a passer 2 variable?

Merci