Bonsoir j'ai 3 fonctions :
La première doit changer l'état d'une variable passé en paramètre de la fonction que voici :
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 static int LED[3] = {0,0,0} void eclair(int e){ LED[1] = e; printf("maintenant la LED n°1 est à %d", e); }
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
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; } }
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
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());
Mais l'état de ma variable : LED[1] est toujours à 0 !
je ne comprend pas !
Partager