Bonjour à tous,

J'étudie sommairement la fonction fork() et les PID (Processus ID) en ce moment.

J'ai le code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
 
int main () {
	pid_t pidf; //Initialisé avec la fonction fork()
	pid_t pid = getpid(); //Obtenir PID du processus en cours
	pid_t ppid = getppid(); //Obtenir le processus parent
 
	pidf = fork(); //Création du processus enfant
 
	if (pidf == 0) { //On est dans le processus enfant
		printf("Fils - Mon PID est %d\n", pid);
		printf("Fils - mon PID parent est %d.\n", ppid);
	}
	else { //On est dans le processus parent
		printf("Parent - Mon pid est %d\n", pid);
		printf("Parent - pidf est %d.\n", pidfils);
	}
	return 0 ;
}
Dans mon code, à quoi correspond la valeur de ma variable "pidf" quand "pidf = fork();"?

Dans ma conception de ce code, je pensais que "pidf = fork()" dans le processus parent était égale à "getpid()" dans le processus fils. Sauf que quand j'exécute ce code ce n'est pas le cas, je dois donc me tromper.

Est-ce que quelqu'un peut m'expliquer un petit peu fork() et les PID dans mon cas?

Par avance merci

Florian