From 5105779eb64293bdeb209356d65b2fba4acb4982 Mon Sep 17 00:00:00 2001 From: tth Date: Wed, 18 Aug 2021 18:52:09 +0200 Subject: [PATCH] + warning --- chap/IPC.tex | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/chap/IPC.tex b/chap/IPC.tex index d007625..13e1d7e 100644 --- a/chap/IPC.tex +++ b/chap/IPC.tex @@ -23,15 +23,16 @@ chose. \label{get-signal} \lstinputlisting[language=c]{code/get-signal.c} +Quand ce processus recevra le signal, la fonction \texttt{attraper} +sera appelée de façon \textsl{asynchrone} et positionnera le drapeau. +C'est dans le terme \textsl{asynchrone} que le diable a caché +les détails. + \begin{verbatim} -fubar $ make get-signal -gcc -Wall get-signal.c -o get-signal fubar $ ./get-signal & [1] 14001 fubar $ kill me, my pid is 14001 kill -USR1 14001 -fubar $ count is 15 -kill -USR1 14001 fubar $ count is 22 kill %1 fubar $ @@ -39,6 +40,23 @@ fubar $ fubar $ \end{verbatim} +Comme on peut le constater, le principe est simple. Un signal est +une interruption d'un processus qui, en dehors de sa présence, ne +transfère que peu d'information. Le principe est simple, d'accord, +mais la mise en œuvre l'est moins. +Cet exemple peut être considéré comme obsolète, et la +\textsl{manpage}\footnote{Mais qui lit le man, de nos jours ?} +confime bien. + +\begin{quote} +The only portable use of signal() is to set a signal's disposition to +SIG\_DFL or SIG\_IGN. The semantics when using signal() to establish a +signal handler vary across systems (and POSIX.1 explicitly permits this +variation); \textbf{do not use it for this purpose}. +\end{quote} + +Vous voilà prévenus, la suite bientôt\dots + % ================================================================