mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 22:11:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			688 B
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			688 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 Linux;
 | |
| 
 | |
| 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.
 | 
