Top-News.fr

Top-News > Informatique > Fork() - création de processus - Linux

Fork() - création de processus - Linux

linux-programmation

Programmation Système : Linux : Langage C :
La primitive Fork() permet de créer un nouveau processus ( appelé processus fils ) depuis un processus existant ( appelé processus père ) .

Prototype de fork() :
#include <sys/types.h>
#include <unistd.h>

pid_t fork();

La fonction fork() duplique le processus courant dans son ensemble , après cette étape l' exécution commence dans les deux processus juste après l' appel de cette fonction .

On identifie un processus grâce à son PID ( Process Indentificator ) : un entier unique dans le système qui permet la création , l' identification , la destruction d' un processus .

C' est grâce à ce PID que nous allons pouvoir " contrôler " de manière séparé nos deux processus .

Quand on appel fork() les valeurs retournées par celle ci seront pour le processus fils "0" et le processus père recevra la valeur de son fils .

Exemple d' un programme utilisant fork() :

code source de exemple1.c

#include
#include
#include
#include

int main()
{

pid_t pid = fork();

if(pid ==0)
{
printf("je suis le fils, mon pid est %d , mon ppid est %d\n", getpid(), getppid());

}
else if(pid != -1)

{
printf("je suis le pere, mon pid est %d, mon ppid est %d\n", getpid(), getppid());
}
else
{
perror("erreur");
return 1;
}

return 0;

}

Pour compiler dans le shell sous linux avec gcc :

gcc -o exemple1 exemple1.c

Pour exécuter :

./exemple1

Résultat à l' écran :

je suis le fils, mon pid est 10770 , mon ppid est 10769
je suis le pere, mon pid est 10769, mon ppid est 10755

Dans ce programme vous avez remarqué l' utilisation de getpid() et de getppid() , ces deux fonctions renvoient respectivement dans le processus courant la valeur du PID et du PPID ( = le PID du processus père , tout processus est le fils d' un autre processus , le père de tout les processus dans UNIX est le processus init de PID=1 ) .

source : cours BTS IRIS , http://www.ulb.ac.be/di/info-f-201/

plus de news sur Fork() - création de processus - Linux

dans les dossiers : • Informatique

Commentaire

  1. saliha

    ecrire un programme qui va crèer un deuxieme processus .le pere va afficher les majuscules à l’ècran et le fils les minuscule .ici , le travail effectuè par les 2 processus est trop court

    Posté le 12 juin 2009

Votre avis sur le billet : Fork() - création de processus - Linux