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

Réseau C Discussion :

interaction entre 2 programme


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Par défaut interaction entre 2 programme
    Bonjour je souhaiterait, faire 2 programmes différents mais qui interagissent entre eux. Il me faut donc des variables qui sont communes au 2 programmes. J'ai donc utilisé des variables globales.

    Voici le code des mes 2 programmes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int impulsion;
    int i;
     
    int main()
    {
    	impulsion =0;
    	i=0;
    	while (i==0)
    	{
    		impulsion++;
    	}
    	return 0;
    }
    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
    16
    17
    18
    19
    20
    21
    22
    #include<stdio.h>
     
    extern int impulsion;
    int i,cp;
    char temp[10];
     
    int main()
    {
    	i=0;
    	while (i!=-1)
    	{
    		if (cp==100)
    		{
    			sprintf(temp,"%i",impulsion);
    			puts(temp);
    			cp=0;
    		}
    		else
    			cp++;
    	}
    	return 0;
    }
    Voila le problème c'est que quand je compile avec gcc (je suis sous linux(Debian)) il me dit qu il ne connait pas la variable impulsion qui est pourtant définie dans l'autre programme
    J'ai essayer de faire un lien entre les deux mais ca marche pas.
    Merci pour votre aide

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Normal, cela ne fonctionne pas comme cela.

    Il faut utiliser des tubes, des sockets, de la mémoire partagée ou des signaux et un fichier.

    Cela dépend vraiment de ce que tu veux faire...
    Jc

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Par défaut
    Ben je veux faire un programme qui va incrementer un varaible dans un cas bien précis (mais bon pour l'instant un "++" fait très bien l'affaire) et un autre programme qui va lire la valeur de cette varaible tout les "X" temps et qui execute des instructions en fonction de la valeurde la variable.

    Je supose que dans ce cas la mémoire partagée est la plus appropriée. Si qq'un à un bon tuto la dessus en C je suis preneur

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par wauant
    Ben je veux faire un programme qui va incrementer un varaible dans un cas bien précis (mais bon pour l'instant un "++" fait très bien l'affaire) et un autre programme qui va lire la valeur de cette varaible tout les "X" temps et qui execute des instructions en fonction de la valeurde la variable.

    Je supose que dans ce cas la mémoire partagée est la plus appropriée. Si qq'un à un bon tuto la dessus en C je suis preneur
    Et pourquoi deux programmes distincts ? Pourquoi pas juste deux threads ?

    Jc

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Par défaut
    euh oui je pourrais faire 2 threads mais est ce que je sais mettre des priorités d'éxécution sur chacun des threads ? car le premier programme doit faire sont boulot que le cpu soit chargé ou pas.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 63
    Par défaut
    Bon j'ai fait des petites recher et visiblement il y a moyen donc se serait sans doute le moyen le plus facile pour faire interagir mes 2 programmes (enfin threads). Mais j'arrive pas à crée un threads

    Voici mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include<stdio.h>
    #include<pthread.h>
     
    int i,cp,impulsion;
    char temp[10];
    pthread_t pthread_id;
     
    void * threadClient(void *arg)
    {
      for(;;)
        {
    	puts("hello");
        }
    }
     
    int main()
    {
    	pthread_create(&pthread_id, NULL, threadClient, &impulsion); 
    	i=0;
    	while (i!=-1)
    	{
    		if (cp==100)
    		{
    			sprintf(temp,"%i",impulsion);
    			puts(temp);
    			cp=0;
    		}
    		else
    			cp++;
    	}
    	return 0;
    }
    et j'ai comme erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    undefined reference to 'pthread_create'
    ALors je me suis dit que la librairie était pas liée, j'ai donc fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./gcc -lpthread -o lecture2 lecture.c
    Mais alors il me met ceci comme erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    undefined reference to '__libc_fork@GLIBC_2.1.2'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'interaction entre l'interface graphique et le programme
    Par bleachvostfr dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 23/03/2015, 19h54
  2. Interaction entre deux programmes
    Par Invité dans le forum ALM
    Réponses: 7
    Dernier message: 01/05/2010, 13h19
  3. Interaction entre VB et un autre programme
    Par Vincinho dans le forum VB.NET
    Réponses: 1
    Dernier message: 15/04/2010, 11h21
  4. Réponses: 1
    Dernier message: 16/04/2007, 13h56
  5. interaction entre mon programme & openOffice
    Par artatum dans le forum C
    Réponses: 4
    Dernier message: 10/10/2005, 22h28

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