\chapter{IPC} \index{IPC} \label{chap:IPC} \textit{Inter Process Communication.} Il existe deux familles bien distinctes. Nous allons donc les voir dans le plus grand des désordres. % ================================================================ \section{Signal} \index{signal} nous allonc commencer par le plus simple mécanisme d'IPC~: le signal. Et pour ça, nous allons utiliser (encore une fois ?) un exemple futile, certes, mais simple à comprendre. Nous avons un programme qui tourne en boucle en effectuant des taches complexes (simulées pour l'exemple par une nanosieste) et nous souhaitons pouvoir lui demander d'afficher l'avancée de la chose. \label{get-signal} \lstinputlisting[language=c]{code/get-signal.c} \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 $ [1]+ Terminated ./get-signal fubar $ \end{verbatim} % ================================================================ % ================================================================ \section{shared memory} \index{shared} Mémoire partagée. % ================================================================ \section{named pipe} Tube nommé.