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

  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 : 44
    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 : 44
    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'

  7. #7
    Membre chevronné
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Par défaut
    Hello,

    Citation Envoyé par wauant
    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'
    Essaie -lc en plus de -lpthread.

    A+

  8. #8
    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
    j'ai toujours là même erreur

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par wauant
    j'ai toujours là même erreur
    Il te manque alors quelque chose car même sans -lc cela devrait compiler ! Es-tu sûr d'avoir installé la bibliothèque pthread, du moins les fichiers de développement ce qui comprend également les bibliothèque pour le linker ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  10. #10
    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 en fait je dois exécuté le code sous un système embatqué. Mais pour simplifier le développement je développe sous windows avec cygwin et à mon avis il y a un problème avec cygwin car si je compile directement sur mon système embarqué ca fonctionne. Donc je suis dépanné mais c'est juste moins pratique.

    Maintenant je sèche sur les priorité des threads. MAis bon ca c'est un autr eproblème.

    Merci pour l'aide

+ 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