Salut !
Je ne sais pas si ce poste a ca place ici ou dans le forum programmation Linux, donc j'espaire ne pas m'étre trompé... :^/
Je me pose la question de savoir quel est la meilleur solution pour faire communiquer deux applications entre elle de manière la plus rapide possible en C sous Linux ? et si la rapidité est beaucoup réduite par rapport a un programme communiquant avec lui même ?
Bon... comme un exemple vaut mieux qu'un long discourt en voici un :
La méthode ici pour communiquer est faite avec un scanf. En utilisant donc un pipe comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // programmeQuiRecoi void main() { int num; int total = 0; while(1) { scanf("%d\n", &num); total += num; printf("total = %d\n",num); } }
Mais il y a plusieurs problème avec cette technique (du moins comme je l'utilise actuellement avec un pipe) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ./programmeQuiEmet | ./programmeQuiRecoi
1> La communication ne se fait que dans un seul sens.
2> La communication ne se fait pas petit a petit mais seulement lorsque le programme qui émet est terminé.
3> Le programme peu communiquer avec UN seul autre programme.
4> Pour terminer je ne suis pas sur que les performances avec cette technique soit exceptionnel non ?
Donc en fait il faudrais un mode de communication qui se face dans les deux sens un genre de truc comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void main() { int num; int total = 0; while(1) { receptionDUnInt(&num); total += num; emitionDUnInt(num); } }
Avais vous une idée de quel technique (portable si possible) utiliser pour faire cela ?
Merci pour votre aide.
Partager