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

C Discussion :

programme en C sur les pipes


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut programme en C sur les pipes
    Bonjour à Tous!!!

    Désolé de vous déranger, mais j'aimrais comprendre plus en détail le programme ci dessus!

    S'il y a une personne qui peut m'aider, cela serait simpatique de sa part!!!

    MERCI

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include<stdio.h>
    #include<unistd.h>
     
    #define VALUE 100
     
    void output(int p[2]);
    void numbers(int p[2]);
     
    int main(void)
    {
       int channel[2];
       pipe (channel1);
     
       if (fork() == 0)
       {
          numbers(channel1);
       }
     
       if (fork() == 0)
       {
          output(channel1);	
       }
       while (wait((int *)0) >= 0);
    }
     
    void output (int p[2])
    {
       long int num;
     
       while(1)
       {
          alarm(1);
          read(p[0]);
          alarm(0);
          printf("the number read from the pipe is %d\n", num);
       }
    }
     
    void numbers(int p[2])
    {
       long time int num;
       int i=0;
     
       srandom((unsigned int) getpid());
     
       while(i < 25)
       {
          num=random();
          if (num % value == 0)
          {	
             write(p[1], &num, sizeof(int));
          }
       }
    }

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 109
    Points
    109
    Par défaut
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include<stdio.h>
    #include<unistd.h>
    
    #define VALUE 100
    
    void output(int p[2]);
    void numbers(int p[2]);
    
    int main(void)
    {
       int channel[2];
       pipe (channel1);/*channel1[0]->lecture,channel1[1]->ecriture*/
    
       if (fork() == 0)
       {/*execution dans le fils */
          numbers(channel1);
       }
    
       if (fork() == 0)
       {/*execution dans le fils*/
          output(channel1);	
       }
       while (wait((int *)0) >= 0);
    }
    
    void output (int p[2])
    {
       long int num;
    
       while(1)
       {
          alarm(1);
          read(p[0],&num,sizeof(int));/*on les recoit*/
          alarm(0);
          printf("the number read from the pipe is %d\n", num);
       }
    }
    
    void numbers(int p[2])
    {
       long time int num;
       int i=0;
    
       srandom((unsigned int) getpid());/*on n'initialise avec le pid du fils*/
    
       while(i < 25)
       {
          num=random();
          if (num % value == 0)
          {	
             write(p[1], &num, sizeof(int));/*on balance des nombres aléatoire pair dans le pipe*/
          }
       }
    }
    While I breath, I hope.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/11/2013, 20h40
  2. questions sur les pipes ?
    Par laracroft87 dans le forum Linux
    Réponses: 16
    Dernier message: 02/05/2009, 20h57
  3. Programmation du filtre sur les Dates
    Par Alpha31 dans le forum Access
    Réponses: 5
    Dernier message: 26/06/2006, 09h21
  4. Réponses: 2
    Dernier message: 30/10/2005, 14h38
  5. Réponses: 2
    Dernier message: 29/07/2005, 10h14

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