A koncepció a jelek


Következő: Küldés jeleket Up: Jelek Előző: Tartalom Signals

jeltovábbítási mechanizmust áll a következő részekből:

Három ismert változatok válasz jeleket:

  • hívja a saját feldolgozási funkciók;
  • figyelmen kívül hagyva a jel (nem működik SIGKILL);
  • használjon előre beállított alapértelmezett feldolgozás funkciót.
Ahhoz, hogy különböző jeleket, meg kell tudni, hogy a feldolgozás fogalmát. A folyamat kell rendezni egy úgynevezett jelfeldolgozó esetén érkezéskor. Ehhez használja a funkciót jel ():

void (* jelet (int signr, void (* sighandler) (int))) (int); Ez a prototípus nagyon nehéz megérteni. Meg kell egyszerűsíteni kell azáltal, hogy meghatározzák a feldolgozás típusa funkciók:

typedef void signalfunction (int); Ezután a függvény prototípus lesz: signalfunction * jelet (int signr,

signalfunction * sighandler); signr számát állítja be a jelet, amely a beállított felvezető. Fejlécfájlba A következő jeleket meghatározott (táblázat. 1).

1. táblázat Linux operációs rendszer jeleket.

átméretezése

Változó sighandler meghatározza a jelfeldolgozó funkciót. Fejlécfájlba meghatározott két állandók SIG_DFL és SIG_IGN. SIG_DFL jelenti teljesítő az alapértelmezett művelet - a legtöbb esetben - az a folyamat végére. Például, a meghatározást jel (SIGINT, SIG_DFL); vezet az a tény, hogy ha megnyomja a Ctrl + C a reakció során kiváltott alapértelmezés szerint a SIGINT és a program végén. Másrészt, lehet meghatározni
jelet (SIGINT, SIG_IGN);

Példa a jel felvezető alábbiakban: #include

void sigfunc (int sig)

printf ( "# 92; nLe teljes program (y / n).");

printf ( „Ön tudja befejezni a programot segítségével