Les signaux

Introduction

Les signaux sont une manière de communiquer entre processus sous Unix. Il est important de noter que les signaux ne sont pas portables sous Windows.

Si on souhaite porter une application qui utilise des signaux sous Windows, if faut soit utiliser cygwin, soit avoir recours aux events Windows (CreateEvent()) et créer un thread caché (Mais garre au problèmes de synchronisation).

D'une manière générale, il faut éviter d'utiliser les signaux pour communiquer entre processus et préférer l'utilisation de pipes ou de sockets, les sockets ayant l'avantage d'être portable.

Les principales fonctions à utiliser

sigaction() prend un numéro de signal et une structure en arguments. On spécifie dans la structure le pointeur de fonction qui sera executé lorsque le processus reçoit ce signal.

kill() prend un numéro de processus pid et un signal s en arguments. Lors de son exécution, le processus pid reçoit le signal s. Ce processus, s'il a installé un handler de signal avec sigaction() exécute la fonction passée à l'appel de sigaction(). Dans le cas contraire, le processus est stoppé par défaut.
Pour plus de détails sur ces fonctions, on se référera au man.

Sources

Valid XHTML 1.0!