Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/12/2009, à 04:03

Pacifick_FR42

C++ Tansfert de paramètres à un autre logiciel...

Bonjours à tous smile
Ben, voilà, j'ai presque tous dit dans le titre...
J'ai besoins de faire communique 3 applis en cous de Dev, je ne sais pas quel moyen utilisé...
1) Faire des flag dans un fichier = ouvrir et fermer constamment ce fichier... pas terrible.
2) Utiliser une table Mysql (que j'utilise d'ailleurs pour mes applis) pourquoi pas...

Existe t'il un moyen pour réserver une espace mémoire accessible uniquement par ses 3 applis  ?
Je précise que je suis très... débutant en c++... hmm

Merci de vos réponses ! wink

Dernière modification par ®om (Le 19/12/2009, à 16:20)

Hors ligne

#2 Le 18/12/2009, à 07:43

Teofifil

Re : C++ Tansfert de paramètres à un autre logiciel...

Bonjour

Tu as aussi les threads. A titre d'info cf :
http://fr.wikipedia.org/wiki/Processus_léger
ou http://doc.trolltech.com/4.5/qthread.html

Dernière modification par Teofifil (Le 18/12/2009, à 07:44)

Hors ligne

#3 Le 18/12/2009, à 10:21

Karl_le_rouge

Re : C++ Tansfert de paramètres à un autre logiciel...

Pour faire communiquer tes applications, tu disposes des IPC (Inter Process Communication), ce qui pourraient t'intéresser dans ton cas :
- mémoire partagée : tu disposes de l'appel mmap qui mappe un fichier en mémoire, tu as également la mémoire partagé hérité d'Unix sysV avec les appels shmget/shmat/shmdet.
- les tubes
- les sockets
Tu peux commencer à lire déjà ce document.
http://www.advancedlinuxprogramming-fr.org/doku.php

Hors ligne

#4 Le 18/12/2009, à 13:25

Le Farfadet Spatial

Re : C++ Tansfert de paramètres à un autre logiciel...

Salut à tous !

   Pour information, Boost propose des processus légers : http://www.boost.org/doc/libs/1_41_0/do … hread.html

   Sinon, il y a une solution simple, typique d'Unix : chaque programme effectue sa sortie en texte sur la sortie standard et prend les paramètres en entrée. Dans la console, il suffit de lier les trois logiciels par un tube. Ça ne convient pas pour tout, mais c'est très utile dans de nombreux cas.

   Exemple simple : tu as le programme « additionne » qui additionne deux nombres et affiche le résultat sur la sortie standard et le programme « double » qui renvoie sur la sortie standard le double d'une valeur :

$ additionne 2 3
5
$double 5
10

Tu peux lier les deux :

$ additionne 2 3 | double
10

C'est parfait dans de nombreux cas (c'est ainsi que fonctionne les commandes Unix) et c'est facile à mettre en œuvre.

   À bientôt.

                                                                                                                                 Le Farfadet Spatial

Hors ligne

#5 Le 18/12/2009, à 13:52

Pacifick_FR42

Re : C++ Tansfert de paramètres à un autre logiciel...

Merci beaucoup pour vos réponses !! smile
Bon, apparemment, la réponse est dans la gestion des thread, car mes applications doivent pouvoir communiquer ensemble continuellement.

Donc si j'ai bien compris, à partir de l'application principale, je peux lancer un processus enfant (n'importe ou sur le disque dure) et lui envoyer et recevoir des info, c'est bien ça ?

Hors ligne

#6 Le 18/12/2009, à 18:38

Karl_le_rouge

Re : C++ Tansfert de paramètres à un autre logiciel...

J'ai l'impression que tu confonds processus et threads (aka processus léger).
La principale différence est qu'un processus dispose de son propre espace d'adressage mémoire (d'où les IPC), alors que des threads d'un même processus partagent celui-ci.

Si tu fais un exec* dans un thread, tu risques d'être surpris par le résultat.

Hors ligne

#7 Le 18/12/2009, à 22:48

Pacifick_FR42

Re : C++ Tansfert de paramètres à un autre logiciel...

Bon, j'ai pas encore bien compris le truc, je vais voire ça, concernant les threads, le but étant de faire inter-communiquer 3 applis bien distinctes...:)

Hors ligne

#8 Le 19/12/2009, à 18:11

rniamo

Re : C++ Tansfert de paramètres à un autre logiciel...

les pipes sont le plus simple si tu peux
sinon les sockets smile ... ou rpc


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#9 Le 19/12/2009, à 19:25

Pacifick_FR42

Re : C++ Tansfert de paramètres à un autre logiciel...

je vois pas comment surveiller une appli avec une autre appli plusieurs fois seconde par des tube... ? smile
Par contre je ne connais pas du-tout la gestion de sockets ni rpc

Dernière modification par Pacifick_FR42 (Le 19/12/2009, à 19:27)

Hors ligne

#10 Le 19/12/2009, à 20:07

feuloren

Re : C++ Tansfert de paramètres à un autre logiciel...

dbus !
C'est un système d'IPC utilisé dans gnome et KDE; c'est assez comliqué à comprendre mais ensuite ça permet de faire des choses bien simplement : en gros tu partage tes objets C++ depuis une application, et les autres applications peuevent y accéder, utiliser leurs méthodes. Tu peux même envoyer des signaux depuis ton application vers les applications qui y sont connecté !
http://www.freedesktop.org/wiki/Software/dbus

Hors ligne

#11 Le 19/12/2009, à 20:28

Pacifick_FR42

Re : C++ Tansfert de paramètres à un autre logiciel...

ah, là oui, ç'est apparemment ce que je cherchais, je vais étudier ça de près... !! smile

Hors ligne

#12 Le 19/12/2009, à 21:21

Karl_le_rouge

Re : C++ Tansfert de paramètres à un autre logiciel...

dbus c'est bien mais trop complexe pour un débutant. Avant de piloter un avion de chasse furtif, on commence par un le vieux coucou. wink

Pour partager des données entre processus, on ne fait guère plus simple que de la mémoire partagée ou bien les tubes.

Hors ligne

#13 Le 19/12/2009, à 22:35

Pacifick_FR42

Re : C++ Tansfert de paramètres à un autre logiciel...

comment utiliser la mémoire partagé ?
Cela dit je suis débutant... c++, à coté de ça j'ai déjà programmé, en assembler (sur 68000) wink

Hors ligne

#14 Le 19/12/2009, à 23:06

Karl_le_rouge

Re : C++ Tansfert de paramètres à un autre logiciel...

Dans le document que j'ai précédemment cités, il y a un chapitre sur les IPC (mémoire partagée, tubes, sockets etc ..) avec des exemples en C.
http://www.advancedlinuxprogramming-fr.org/doku.php?id=livre:chap5:communication_interprocessus
Je te recommande plus spécifiquement la lecture du paragraphe sur la mémoire mappée qui traite de l'appel mmap. Ne te fie pas au nom, c'est pour distinguer de l'autre technique de mémoire partagée présenté au début du chapitre.

Hors ligne

#15 Le 20/12/2009, à 01:54

Pacifick_FR42

Re : C++ Tansfert de paramètres à un autre logiciel...

ok, merci smile

Hors ligne