bounkolh
Messages postés6Date d'inscriptionlundi 11 décembre 2000StatutMembreDernière intervention22 mai 2008
-
19 mai 2008 à 13:34
Utilisateur anonyme -
20 mai 2008 à 13:54
Bonjour est ce que quelqu'un peut m'expliquer le déroulement de ce programme svp?
#include <stdio.h>
#include
int main(int argc, char *argv[ ]) {
int tube[2];
char buf;
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 19 mai 2008 à 13:51
Salut
La principal difficulte de ce programme vient du fork().
Il faut bien comprendre le fonctionnement de cette fonction avant de commencer: fork va dubliquer a l'identique le processus tel qu'il est avant l'appel du fork. On aura donc un processus pere et un processus fils qui vont executer du code suivant le retour de la fonction fork.
Ici le processus pere va executer les lignes du if et le processus fils les lignes du else.
Mais une chose est importante a comprendre, si le processus fils modifie la variable Buf, cette modification ne sera pas vu par le processus pere.
Pour ce programme, on commence a creer un pipe de communication (avant le fork pour que les deux processus puisse le voir), puis le pere va ecrir un message dans le pipe qui sera lu et ecrit dans la sortie standard par le fils.
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 19 mai 2008 à 16:25
Oui Blinix123, bien sur que l'on est dans le monde Unix avec les pipes et les fork. Je n'ai pas juger necessaire de le preciser dans mon premier message tellement c'etait evident pour moi.
En tout cas, j'espere que bounkolh en etait convaincu.