creation de processus - C - Programmation
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?
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());
}
}
}