Aide langage C programme

Fermé
Perezlyon - 17 juin 2007 à 10:09
 caltoune - 18 juin 2007 à 02:54
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

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
il y a affichage des données saisies ??? via scanf ?
0
printf est une sortie (donc affiche)
scanf est une entrée
0
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