Software Archive
Read-only legacy content
17061 Discussions

Signal Handlers

Intel_C_Intel
Employee
262 Views
Hello,

Does anyone have an example of how to install a signal handler in FORTRAN. After reading the signal(3f) man page I came up with something like this, but it doesn't work. I'm trying to catch a floating point overflow (72).

program main

ierr = signal(72,myhandler,-1)
write(6,*) "ierr=",ierr

...
end

subroutine myhandler

write(6,*) "Called my handler"

end

The value returned by ierr is zero, according to the man page it should return the address of the subroutine. What am I doing wrong here? Any help would be greatly appreciated!

Thanks,

Bryan Walsh
0 Kudos
3 Replies
Steven_L_Intel1
Employee
262 Views
I'm not a UNIX expert, but reading the manual suggests that the code you want is 75 for SIGFPE. See
0 Kudos
Intel_C_Intel
Employee
262 Views
Steve,

I do want 72 since this is the signal being sent, but I've also tried 75.

Bryan
0 Kudos
Steven_L_Intel1
Employee
262 Views
Hmm. Well, you've now gone outside what I know. I'll pass your question on to our exception handling expert and see what he says.

Steve
0 Kudos
Reply