Je veux vous poser quelque question sur les processus sous unix
J'ai le programme suivant
Main()
{ int i=0 ;
If(fork()==0)
{
i=1 ;
Exit(i) ;
i=2 ;
}
Printf("%d",i);
}
If va afficher que i =0 et se rend pas compte de I du processus fils
Et surtout j'ai pas compris pourquoi il n'affiche pas i=1
Le 2eme pb c'est ce programme
Main()
{
Int i, n=0 ;
For(i=1;i<4;i++)
{
If(fork()!=0)
{
N=i;
}
Printf("%d",n);
Pourquoi il parcours l'arbre de façon ascendante en affichant la valeur de n
Pourquoi il n'affiche pas au fur et a mesure la valeur de n en descendant dans l'arbre
Et pourquoi si on remplace if (fork() !=0) par if (fork()==0)
Il parcourt l'arbre de façon descendante et affiche au fur et a mesure n
Le troisième problème consiste a
Utiliser exec(v,vp,l,lp) avec d'autre instructions exemple
Printf ,il n'affiche pas le résultat de printf uniquement celui de execv
Pour d'autre commande comme read write dup. ses commandes seront exécutes que s'ils sont écrites avant exec
Sinon ils seront ignorés pourquoi ??????