Как перехватывать kernel-signals? |
Previous Top Next |
Code: |
program TestSignals;
{$APPTYPE CONSOLE}
uses Libc;
var bTerminate: Boolean;
procedure SignalProc(SigNum: Integer); cdecl; begin case SigNum of SIGQUIT: begin WriteLn('signal SIGQUIT'); bTerminate := true; end; SIGUSR1: WriteLn('signal SIGUSR1'); else WriteLn('not handled signal'); end; signal(SigNum, SignalProc); // catch the signal again end;
begin bTerminate := false;
signal(SIGQUIT, SignalProc); // catch the signal SIGQUIT to procedure SignalProc signal(SIGUSR1, SignalProc); // catch the signal SIGUSR1 to procedure SignalProc
repeat sleep(1); until bTerminate; end. |
©Drkb::04591
Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php