begin process at 2010 02 10 16:24:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Explication de ce programme


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Explication de ce programme

lundi 19 mai 2008 à 13:34:47 | Explication de ce programme

bounkolh

Bonjour est ce que quelqu'un peut m'expliquer le déroulement de ce programme svp?

#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[ ]) {
int tube[2];
char buf;

pipe (tube);

if (fork()) {
write(tube[1], &#8221;Bonjour\n&#8221;, 8);
}
else {
while(read(tube[0], &buf, 1)) {
write (STDOUT_FILENO, &buf, 1);
}
}
return 0;
}
lundi 19 mai 2008 à 13:51:22 | Re : Explication de ce programme

Pistol_Pete

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.


Voila j'espere avoir ete clair.

A+
Mon site internet : [ Lien ]

lundi 19 mai 2008 à 15:24:39 | Re : Explication de ce programme

blinix123

Et c'est en Unix

When the rich wage war, it's the poor who die.
lundi 19 mai 2008 à 16:25:27 | Re : Explication de ce programme

Pistol_Pete

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.



A+
Mon site internet : [ Lien ]

lundi 19 mai 2008 à 17:00:56 | Re : Explication de ce programme

bounkolh

Oui et merci beaucoup; en fait j'en avais une d'explication et me rend compte que je ne suis pas trés loin de toi.

Oui on est dans le monde d'Unix.

Merci c vraiment sympa
B.
mardi 20 mai 2008 à 13:54:57 | Re : Explication de ce programme

blinix123

Non mais comme ca si quelqu'un passe par la et qu'il ne connait pas trop il sait que c'est en Unix, rien de méchant ^^

When the rich wage war, it's the poor who die.


Cette discussion est classée dans : programme, int, explication, buf, tube


Répondre à ce message

Sujets en rapport avec ce message

Explication et correction de ce programme [ par bounkolh ] Bonjour, est ce que quelqu'un peut m'aider à expliquer et corriger ce programme svp? #include #include int main(int argc, char *argv[]) { int mon Afficher un Int dans une ListBox ? [ par KroOon ] Bonjour alors je vous explique mon petit Probléme je débute en Programmation Pour lla Creation d' Applications Windows.Je souhaiterais A partir d' un Expliquation sur 1 mini programme? [ par bastaroner ] Bonjour, je suis 1 bille en langage C, et il me faut expliquer ds les moindres details ce que fait le petit programme suivant:#include main(){       i un programme qui tourne pas [ par youssefmahdia ] bonjour,voila, ce programme ne tourne pas,#include  #include  main() { int i,j; int s[5][5]; for(i=0;i {for(j=0;j s[i][j]=(j/(int)pow( Problème de boucle for [ par blue01 ] Bonjour tout le monde,    je fais actuellement un programme pour résoudre et générer des sudoku pour me faire la main.Mon compilateur compile en c++ ( Erreur dans un petit programme mathematique [ par Kcuftesends ] bonjour je suis en train de créer un programme qui permet de determiner si un nombre est triangulaire c'est à dire qu'il peut etre egal a la somme des rien ne s'affiche a l'execution(les tubes ordinaires) [ par brekiano ] bonsoir,  svp chui débutant dans la programmation systeme sous unix.j'ai fait ce programme qui affiche normalement le résultats de ce pipes :    ]$ ps Cryptage RSA, problème pour x^y mod z [ par Shuugeki ] Bonjour, j'étudie le C en cours depuis un mois (à raison de 2h par semaine, c'est à dire, trop peu je pense ! ), et j'ai un programme à faire qui réal Programme test de glutGetModifiers [ par sebtaptap ] J'ai fait ce tout petit programme pour savoir ce que renvoyait int glutGetModifiers() et il se trouve qu'il ne marche qu'a moitié. Le principe : Il c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales