⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 列表6.4.txt

📁 klinux书籍的配套光盘。可以学习学习。
💻 TXT
字号:
【列表6.4】摘录自HndRecvrMain.pas的程序代码。
var
   HndRecvrForm: THndRecvrForm;
   SigActionRec: TSigAction;
procedure Handler(Sig : Integer); cdecl;
begin
 case Sig of
   SIGUSR1 : HndRecvrForm. ColorPanel.Color := clGreen;
   SIGUSR2 : HndRecvrForm. ColorPanel.Color := clRed;
   SIGINT  : ShowMessage('Received a Ctrl+C Interrupt!');
 end; { case }
end;
procedure InstallHandlers;
    begin
     with SigActionRec do
       begin
        __sigaction_handler := Handler;
        sigemptyset(sa_mask);
        sa_flags := 0;
        sigaction(SIGUSR1, @SigActionRec, nil);
        sigaction(SIGUSR2, @SigActionRec, nil);
        sigaction(SIGINT,   @SigActionRec, nil);
      end; { with }
   end;
   procedure DefaultHandlers;
   begin
    with SigActionRec do
     begin
       __sigaction_handler := TSigActionHandler(SIG_DFL);
       sigemptyset(sa_mask);
       sa_flags := 0;
      sigaction(SIGUSR1, @SigActionRec, nil);
      sigaction(SIGUSR2, @SigActionRec, nil);
      sigaction(SIGINT, @SigActionRec, nil);
     end; { with }
  end;
 procedure IgnoreHandlers;
 begin
   with SigActionRec do
    begin
     __sigaction_handler := TSigActionHandler(SIG_IGN);
     sigemptyset(sa_mask);
     sa_flags := 0;
     sigaction(SIGUSR1, @SigActionRec, nil);
     sigaction(SIGUSR2, @SigActionRec, nil);
     sigaction(SIGINT, @SigActionRec, nil);
   end; { with }
end;
procedure THndRecvrForm. BlockIntCBClick(Sender: TObject);
var
 ProcMask : sigset_t;
begin
 sigemptyset(ProcMask);
 sigaddset(ProcMask, SIGINT);
if BtockIntCB.Checked
  then sigprocmask(SIG_BLOCK, @ProcMask. nil)
  else sigprocmask(SIG_UNBLOCK, @ProcMask, nil);
end;
procedure THndRecvrForm. MonitorTimerTimer(Sender: TObject);
var
 PendingMask : sigset_t;
begin
 sigpending(PendingMask);
 if sigismember(PendingMask, SIGINT) <> 0
   then StatusLabel.Caption := '(Interrupt pending)'
   else StatusLabel.Caption := '';
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -