Subject: Problems with setjmp and signals
From: [email-masked] (Joachim Schmid)

24 Jul 1997 07:37:24 -0700
Approved: [email-masked]
Distribution: cygnus
Message-ID: <199707241149.NAA03148.cygnus.gnu-win32@bizet>
Original-To: [email-masked]
X-Sun-Charset: US-ASCII
Original-Sender: [email-masked]

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
"[email-masked]" with one line of text: "help".