Problems with setjmp and signals
Joachim Schmid
joachim@bach.informatik.uni-ulm.de
Thu Jul 24 06:06:00 GMT 1997
Hallo,
Consider the following example:
#include <setjmp.h>
#include <signal.h>
#include <stdio.h>
static jmp_buf catch;
void handler(int sig) {
signal(SIGINT,handler);
longjmp(catch,0);
}
int main() {
setjmp(catch);
signal(SIGINT,handler);
printf("starting\n");
while (1) sleep(1);
return 0;
}
Compiling and running under unix has the expected result. The programs starts
and prints the message "starting". For each Ctr-C it prints the text
"starting" again.
Und gnu-win32 b18, the first Ctrl-C is catched by the signal handler, but
all other Ctr-C are ignored.
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".
More information about the Cygwin
mailing list