www.pudn.com > os_example.rar > RAISE.CPP


/* 	Example for raise 
		Also demonstrates signal  
	*/  
 
#include  
#include  
#include  
#include  
#include  
 
	void div_zero (int val) 
	{  
	   cout << "Divide by zero detected!" << endl; 
	   exit (EXIT_FAILURE);  
	}  
	 
	void main () 
	{  
	   float numerator = 3.0F, denominator = 0.0F;  
	   cout << "Main started." << endl; 
	    
	   //Sets interrupt signal handling. 
	   if (signal (SIGFPE, div_zero) == SIG_ERR) 
	   {  
	      perror ("Could not set signal SIGFPR"); 
	      abort (); 
	   }  
 
	if (denominator == 0.0F) 
	{ 
	   cout << "SIGFPE raised." << endl; 
	   raise (SIGFPE);  
	} 
	else 
	   printf (" The result of the division is %g\n", numerator / denominator); 
	}