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
A voir également:

4 réponses

Scriptiz
 
Dup2 >>> http://www-igm.univ-mlv.fr/~dr/cs/node60.html


oui il y a affichage des valeurs du tableaux CH, une par ligne si je ne me trompe même si je n'ai jamais fait de C :P
0
christele
 
il y a affichage des données saisies ??? via scanf ?
0
Scriptiz
 
printf est une sortie (donc affiche)
scanf est une entrée
0
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