IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[Perl] communication Inter-Processus


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut [Perl] communication Inter-Processus
    J'aimerais bien écrire une application perl, disons un démon, qui possederait une hashmap, avec par exemple 3 champs, toto, titi et tata.

    Comment faire pour rendre cette map disponible pour d'autres programmes perl, et qu'un programme perl réussisse à obtenir la donnée correspondante à toto, titi ou tata en passant par le nom de la clé, par exemple &getData('titi') appelée depuis le programme distant permettrait d'obtenir le contenu de $map('titi') du démon ?

    Je ne suis peut-être pas très clair. Disons que j'aimerais réaliser une communication inter-processus en perl. Est-ce possible ? et si oui, comment ?

  2. #2
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Bonjour,

    Et bien pour fair ce genre de choses, je te conseille d'utiliser un pipe (solution qui fonctionne sous les systèmes Unix/Linux, MacOS et Windows qui plus est) ou même simplement un appel système...
    A partir de ton démon, tu appelles le programme perl que tu veux en lui passant ce que tu veux comme paramètre. Dans ce programme, le paramètre sera accessible dans le tableau @ARGV.

  3. #3
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Malheureusement, le démon occupe 50% de la RAM, et de nombreux process doivent être lancés. chaque process ne doit récupérer qu'une variable ou 2 de la hash stockée par le démon. Si je suis ta méthode, au bout de 2 process, j'ai déjà explosé la RAM disponible !

  4. #4
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Je ne comprend pas bien ce que tu veux dire... A partir de ton démon, tu lances chaque process en lui passant le paramètre nécéssaire... Exemple :
    system("C:\tonscript.pl $hash{'cle'}); va appeller le script tonscript.pl en lui passant $hash{'cle'} comme paramètre. Dans tonscript.pl, ce paramètre sera accessible par $ARGV[O]...

  5. #5
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Ah ok, je vois ce que tu veux dire, cependant, la valeur de ce paramètre peut changer en cours de route...

    D'autant que certains scripts peuvent avoir besoin d'une centaine de paramètres, donc si on utilise cette méthode, ce n'est pas véritablement gérable !

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Le plus simple me semble-t-il serait d'utiliser un serveur, non ?

    (Sinon tu peux faire des tas de trucs non portables (partager la mémoire, passer des messages, etc), mais je ne vois pas trop l'intérêt par rapport à un serveur sauf si tu cherches vraiment les performances)

    --
    Jedaï

Discussions similaires

  1. Communication Inter Processus
    Par pittacos dans le forum Windows
    Réponses: 3
    Dernier message: 29/07/2008, 09h50
  2. Communication inter-processus et pause()
    Par jsebfranck dans le forum POSIX
    Réponses: 10
    Dernier message: 14/02/2008, 14h52
  3. [windows] Communication inter-processus
    Par litbos dans le forum Windows
    Réponses: 6
    Dernier message: 16/01/2007, 09h13
  4. [débutant] Communication inter-processus
    Par tooney dans le forum C
    Réponses: 3
    Dernier message: 29/12/2005, 20h48
  5. communication inter-processus
    Par benoit70 dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo