Aide langage C programme

Perezlyon -  
 caltoune -
Aide programme Langage C :

Bonjour à tous,

Je débute en programmation, notre prof nous a donné un programme à analyser, je ne pense pas avoir compris donc je me tourne vers vous pour obtenir de l'aide.

voici le code du programme :

int main()
{ int fd[2], i=2;
char ch[100];
while (i)
{ pipe(fd);
if(fork())
{ close(fd[0]);
dup2(fd[1],1);
close(fd[1]);
break;
}else
{ close (fd[1]);
dup2(fd[0],0);
close(fd[0]);
}
i--;
}
scanf("%s",ch);
printf('%s/n",ch);
exit(0);
}

Déja il y a il me semble ouverture d'un canal de communication par le pere puis création du fils. Par contre je ne comprends pas la primitive Dup2.
Il y a affichage des variables contenues dans le tableau CH ?

Merci par avance pour votre aide
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. christele
     
    il y a affichage des données saisies ??? via scanf ?
    0
  2. Scriptiz
     
    printf est une sortie (donc affiche)
    scanf est une entrée
    0
  3. caltoune
     
    de mémoire le descripteur de fichier 0 et le descripteur 1 sont associé à la sortie standard.
    le fork sépare l'exécution en deux et partage le même espace mémoire qui est les quelques déclarations avant le fork. ledup2 sert à construire le pipe donc changer le comportement ititial des deux descripteurs.
    Le résultat devrait être une inversion de l'entrée standart avec la sortie standart...Sous toute réserve
    Qu'en pensez vous? En tout cas beau programme :)
    0