de travail de la fourche en langage c

Maintenant j'ai un problème dans la compréhension du travail de fork() appel système.
J'écris un code qui suit :

#include<stdio.h>
int main()
{
    int a, b;
    b=fork();

    printf("\n the value of b = %d",b);
}

La sortie de ce code est la suivante :

Maintenant, je ne comprends pas pourquoi la sortie, c'est comme cela ?

Après que je viens d'ajouter une ligne à mon code et la sortie est complètement différent.
mon code est le suivant:

int main()
{
    int a, b;
    b=fork();

Lorsque j'exécute le code de sortie est le suivant
2389my nom de manish

 the value of b = 0

Maintenant, je suis totalement confus sur le travail de fork() appel.

Mes question sont les suivantes:

  1. Comment fork() fonctionne?
  2. Où le contrôle se passe après la fork() appel?
  3. Tout organisme peut expliquer pourquoi les sorties de codes écrits dans le problème?
  4. Pourquoi la sortie de b se produisant dans différents lieux dans le premier code
    la sortie de b = 2260 est juste avant la sortie b = 0 alors que la valeur de b = 2389 n'est pas juste avant le b = 0?

Merci de m'expliquer le fonctionnement de la fourche dans le code écrit dans le problème afin que je puisse l'apprendre correctement .

OriginalL'auteur Golu | 2011-06-02