Bonsoir,
je m'essaye a la communication entre processus, pour ce faire jai crée un programme en C avec une fonction qui crée un processus pour une fonction passé en paramétre, a l'aide de ce code :
j'ai une fonction change état LED qui change l'état d'un variable, et une fonction [I]voir etat LED[I] qui me renvoi l'état de la variable, voici le code :
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 int nouveau_processus( void (*nouv_prog)()){ pid_t processus; processus = fork(); if (processus == -1){ printf("erreur dans la création du processus\n"); return 0; } else if (processus == 0){ printf("je suis dans le processus fils et j'execute la fonction en paramétre\n"); nouv_prog(); return getpid(); } }
ainsi pour crée un nouveau processus avec ces fonctions je fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int LED = 0; void change_etat_LED(int b){ LED = b; } int voir_etat_LED(){ return LED; }
maintenant si je souhaite voir le changemement d'état de ma variable je crée un nouveau processus de cette facon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void nouveau_programme1(){ change_etat_LED(3); } //je crée le processus avec mon nouveau_programme1 nouveau_processus(nouveau_programme1);
Le problème c'est que tout ça fonctionne, la variable LED et bien changer pas 'nouveau_programme1' et moi ce que je voudrais c'est faire communiquer l'état de la variable LED par un système de communication inter processus IPC (du genre MSQ ou autres), est ce que j'ai loupé quelques chose ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void nouveau_programme2(){ voir_etat_LED() } //je crée le processus avec mon nouveau_programme2 nouveau_processus(nouveau_programme2);
Partager