Bonsoir j'ai 3 fonctions :

La première doit changer l'état d'une variable passé en paramètre de la fonction que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
static int LED[3] = {0,0,0}
 
void eclair(int e){
LED[1] = e;
printf("maintenant la LED n°1 est à %d", e);
}
et ma deuxième fonction crée un processus fork prenant en paramètre une fonction contenant les différentes actions à réalisé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
int nouveau_programme( void (*nouv_prog)() ){
pid_t processus;
processus = fork();
 
if (processus = -1){ 
return -1;
}
else if (processus == 0){
printf("je suis dans le processus fils");
return EXIT_SUCCESS;
}
}
et donc par exemple si je veux que l'utilisateur utilise void eclair(int e) dans un nouveau processus, il fera :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
void mon_prog1() {
void eclair(1);
}
 
nouveau_programme( mon_prog1());
Le problème est que lorsque j’exécute ce programme, je passe bien par le processus fils crée car j'ai le message : je suis dans le processus fils
Mais l'état de ma variable : LED[1] est toujours à 0 !
je ne comprend pas !