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 :
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);
}
} |
La méthode ici pour communiquer est faite avec un scanf. En utilisant donc un pipe comme ca :
./programmeQuiEmet | ./programmeQuiRecoi
Mais il y a plusieurs problème avec cette technique (du moins comme je l'utilise actuellement avec un pipe) :
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 :
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