creation de processus

creation de processus - C - Programmation

Marsh Posté le 26-12-2010 à 21:26:54    

bonjour
j'ai ecrit un programme qui création d'un processus qui a deux fils ou chaque fils calcul le factoriel d'un nombre que je tappe et chaque processus affiche son pid  
la compilation n'affiche aucun pbm mai lorceque j'éxécute il me donne unrésultat faut
voici le pgm
#include<stdio.h>
 
#include<unistd.h>
 
main()
 
{
 
int p1,p2;
 
printf("je suis le pere,mon pid est:%d\n",getpid());    
 
wait(0);
 
p1=fork();
 
if(p1==0)
{
int i,x;
 
printf("entrez une valeur de i\n" );
 
scanf("%d",&i);
 
x=1;
 
while(i!=0)
 
{
 
x=x*i;
 
i=i-1;
 
}
 
printf("le factoriel est egale à\n %d\n",x);
 
printf("je suis le fils1,mon pid est:%d,mon ppid est:%d\n",getpid(),getppid());
 
}
else
 
{
p2=fork();
 
if(p2==0)
 
{
 
int j,y;
 
printf("entrez une valeur de j\n" );
 
scanf("%d",&j);
 
y=1;
 
while(j!=0)
 
{
 
y=y*j;
 
j=j-1;
 
}
 
printf("le factoriel est egale à\n %d\n",y);
 
printf("je suis le fils2,mon pid est:%d,mon ppid est:%d\n",getpid(),getppid());
}
}
 
 
}
 

Reply

Marsh Posté le 26-12-2010 à 21:26:54   

Reply

Marsh Posté le 28-12-2010 à 00:47:06    

Salut

 

Merci de soigner l'orthographe, d'utiliser les balises code et d'indenter correctement.

 

Quelques remarques en vrac parce que lire ce gros pâté est assez chiant difficile (je pense que le manque de réponse est dû à ça, soit dit en passant):

 

- Le père n'attend pas les fils.
- scanf c'est mal => fgets
- faire deux scanf en "simultané" ça me semble louche. Je pense qu'il vaudrait mieux demander les valeurs à l'utilisateur avant de faire des fork.

 
Citation :

amaniamani2604 a écrit (ou presque):

 

lorsque j'exécute le programme, il me donne un résultat faux.

 

C'est quoi un résultat faux?


Message édité par ptitchep le 28-12-2010 à 00:49:37

---------------
deluser --remove-home ptitchep
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed