mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 09:39:32 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			691 B
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			691 B
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
Program example57;
 | 
						|
 | 
						|
{ Program to demonstrate the SigAction function.}
 | 
						|
 | 
						|
{ 
 | 
						|
do a kill -USR1 pid from another terminal to see what happens.
 | 
						|
replace pid with the real pid of this program. 
 | 
						|
You can get this pid by running 'ps'.
 | 
						|
}
 | 
						|
 | 
						|
uses oldlinux;
 | 
						|
 | 
						|
Var
 | 
						|
   oa,na : PSigActionRec;
 | 
						|
   
 | 
						|
Procedure DoSig(sig : Longint);cdecl;
 | 
						|
 | 
						|
begin
 | 
						|
   writeln('Receiving signal: ',sig);
 | 
						|
end; 
 | 
						|
 | 
						|
begin
 | 
						|
   new(na);
 | 
						|
   new(oa);
 | 
						|
   na^.Handler.sh:=@DoSig;
 | 
						|
   na^.Sa_Mask:=0;
 | 
						|
   na^.Sa_Flags:=0;
 | 
						|
   na^.Sa_Restorer:=Nil;
 | 
						|
   SigAction(SigUsr1,na,oa);
 | 
						|
   if LinuxError<>0 then
 | 
						|
     begin
 | 
						|
     writeln('Error: ',linuxerror,'.');
 | 
						|
     halt(1);
 | 
						|
     end;
 | 
						|
   Writeln ('Send USR1 signal or press <ENTER> to exit'); 
 | 
						|
   readln;
 | 
						|
end.
 |