Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Как перехватывать kernel-signals?


Автор: Pakshin A. S. 6.11.2004, 19:01
Код

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.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)