Bonjour,
J'ai un petit souci de compréhension avec le programme suivant:
Ligne 15 j'ai kill (pid, SIGUSR1) qui permet d'envoyer le signal SIGUSR1 au fils afin que ce dernier exécute la fonction T1()
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
23 1 #include <stdio.h> 2 #include <sys/signal.h> 3 #include <sys/types.h> 4 #include <unistd.h> 5 6 void T1 ( ) { 7 printf (Ja i recu un signal\n ); 8 } 9 10 int main (int argc, char_argv [ ]) { 11 pidt pid; 12 13 if (pid = fork ( )) { 14 sleep (5); 15.kill (pid, SIGUSR1) 16 } 17 else { 18 signal (SIGUSR1, T1); 19 pause ( ); 20 } 21 return 0; 22 }
Est-ce que quelqu'un pourrait m'expliquer pourquoi dans kill (pid, SIGUSR1) le signal est envoyé au fils alors que pour moi dans ce cas pid =! o, donc nous sommes dans le père.
Quelle est la valeur de PID suite à "if (pid = fork ( )) {". Je pensais que c'était celle du père?!
Est-ce que quelqu'un pourrait m'expliquer exactement ce qu'il se passe? Merci d'avance pour vos explications.
Partager