|  | searching for method signatures |  | |
| | | David Hilton |  |
| Posted: Tue Sep 02, 2008 6:41 pm Post subject: searching for method signatures |  |
I'm working on some legacy code, and I ran across this function that is giving the compiler issues:
void socket_skip(int i,int code,struct sigcontext * scp) { fprintf(stderr,"User requested an interupt\n"); signal(SIGINT,exit); sleep(1); signal(SIGINT,socket_skip); return; }
Not surprisingly, signal doesn't like socket_skip.
I have searched for any sort of #define that could have specified a unique signal, I have read through most of the possibly relevant lines (by running 'grep sig `locate signal.h` | less').
Does anyone know of a good way to search for (possibly obfuscated) method signatures?
How about any other way of finding what I'm looking for?
Short of that, does anyone know what library might have a signal that accepts that signature?
Thanks, David |
| |
| | | Ben Bacarisse |  |
| Posted: Tue Sep 02, 2008 7:56 pm Post subject: Re: searching for method signatures |  |
| |  | |
David Hilton <quercus.aeternam@gmail.com> writes:
| Quote: | I'm working on some legacy code, and I ran across this function that is giving the compiler issues:
void socket_skip(int i,int code,struct sigcontext * scp) { fprintf(stderr,"User requested an interupt\n"); signal(SIGINT,exit); sleep(1); signal(SIGINT,socket_skip); return; }
Not surprisingly, signal doesn't like socket_skip.
I have searched for any sort of #define that could have specified a unique signal, I have read through most of the possibly relevant lines (by running 'grep sig `locate signal.h` | less').
Does anyone know of a good way to search for (possibly obfuscated) method signatures?
How about any other way of finding what I'm looking for?
Short of that, does anyone know what library might have a signal that accepts that signature?
|
signal is standard C. I suspect your code simply dates from a time when it was common for signal to vary quite a lot between systems. I don't think you will gain anything from trying to find something similar -- it is likely that is nothing you have available is an exact match.
If this the only use of signal? If so, I think your simplest solution is just to change the definition of socket_skip to match the type expected by the standard signal function (void (*)(int)). The extra parameters are not used but either handler (exit and socket_skip).
If there are other uses -- in particular some that set the handler to a function that does use the other parameters then you will have to find out what these parameters do/did. That may require digging through the documentation for the "other" system.
-- Ben. |
| |
|
|