WEBVTT

00:05.470 --> 00:11.980
La troisième technique pour générer et envoyer un signal consiste à utiliser un appel système.

00:12.010 --> 00:17.530
Un processus peut donc envoyer un signal à un autre processus en utilisant l'appel système kill.

00:17.950 --> 00:24.190
Notez donc que l'appel système kill est utilisé pour envoyer un signal d'un processus de l'espace utilisateur à un autre.

00:24.190 --> 00:25.600
Processus de l'espace utilisateur.

00:26.960 --> 00:30.110
Le synopsis de l'appel Kill System est très simple.

00:30.410 --> 00:34.160
Le premier argument est l'ID du processus destinataire.

00:34.250 --> 00:37.250
C'est le processus qui est censé recevoir le signal.

00:37.250 --> 00:41.150
Le deuxième argument est le numéro du signal que vous souhaitez envoyer.

00:41.420 --> 00:42.190
C'est vrai.

00:42.200 --> 00:45.980
Le premier argument est donc l'ID du processus destinataire.

00:46.100 --> 00:51.200
Le processus d'envoi doit connaître l'identifiant du processus destinataire pour pouvoir envoyer un signal.

00:51.500 --> 00:59.030
Vous pouvez donc voir ici qu'il s'agit d'une implémentation très simple de l'émetteur et du récepteur dot C, n'est-ce pas ?

00:59.030 --> 01:01.250
Vous pouvez donc voir dans le récepteur le point c.

01:02.360 --> 01:08.660
Le récepteur a enregistré un gestionnaire de signal correspondant au signal sig us one.

01:09.660 --> 01:10.170
C'est vrai.

01:10.170 --> 01:15.180
La première chose à faire est donc de compiler le programme du récepteur et de l'exécuter.

01:15.840 --> 01:19.590
J'ai placé un scanner ici pour que ce programme ne s'arrête pas.

01:20.510 --> 01:25.760
Ainsi, parce que nous avons enregistré le signal, dès que ce programme recevra un signal

01:25.780 --> 01:30.530
comme SR one, le gestionnaire de signal correspondant sera invoqué.

01:32.020 --> 01:39.460
Maintenant, lorsque vous exécutez ce programme à l'aide de la commande PS, je vous ai déjà montré qu'en utilisant la commande

01:39.460 --> 01:42.910
PS, vous pouvez toujours trouver l'ID de ce processus.

01:43.300 --> 01:49.660
Une fois que vous avez trouvé l'identifiant du processus dans le fichier center dot c, spécifiez-le ici.

01:50.800 --> 01:51.430
C'est vrai.

01:51.430 --> 01:58.090
Et après avoir spécifié ce processus, ID ici, il suffit de recompiler le fichier center dot c et d'exécuter

01:58.090 --> 01:59.140
l'exécutable.

02:00.220 --> 02:07.000
Vous pouvez donc voir que dès que ce programme sera exécuté à l'aide de la commande kill, ce processus enverra un signal

02:07.100 --> 02:13.300
sig esr one au processus récepteur pour expliquer pourquoi il envoie le signal au processus récepteur.

02:13.300 --> 02:18.850
Parce que nous avons spécifié l'ID du processus récepteur comme premier argument de cette commande

02:18.850 --> 02:19.420
kill.

02:20.530 --> 02:24.160
Et bien sûr, vous devez exécuter ce programme dans une autre fenêtre de terminal.

02:24.640 --> 02:30.820
Vous verrez donc que dès que le processus récepteur reçoit le signal Sig SR one, il invoque son gestionnaire

02:30.820 --> 02:31.810
de signal.

02:33.020 --> 02:37.010
Ces deux programmes sont donc en fait très petits et assez simples.

02:37.010 --> 02:42.380
Tapez ces commandes dans la fenêtre de votre terminal et observez ce que vous observez.

02:42.620 --> 02:45.110
C'était donc un signal pour vous.

02:47.040 --> 02:57.870
Vous pouvez donc voir ici que 5939 est l'ID du processus de réception et que Sig SR one et Sig SR two sont réservés pour être utilisés en tant

02:57.870 --> 03:01.230
que signaux définis par l'utilisateur.

03:01.230 --> 03:07.890
En d'autres termes, il incombe à l'utilisateur de définir le gestionnaire de signaux correspondant aux signaux.

03:10.320 --> 03:16.800
Il s'agissait donc d'envoyer un signal d'un processus à un autre ou du système d'exploitation à l'application.

03:16.980 --> 03:17.790
C'est vrai ?

03:19.250 --> 03:25.910
Ce thème du signal est donc relativement simple et facile par rapport à d'autres techniques de communication interprocessus.
