#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
static void catch_function(int signal) {
int foo;
printf("Local variable address: %"PRIxPTR
"\n", (intptr_t)&foo
); }
int main(void) {
int bar;
if (signal(SIGINT, catch_function) == SIG_ERR) {
fputs("An error occurred while setting a signal handler.\n", stderr
); return EXIT_FAILURE;
}
printf("Local variable address: %"PRIxPTR
"\n", (intptr_t)&bar
); puts("Raising the interactive attention signal."); if (raise(SIGINT
) != 0) { fputs("Error raising the signal.\n", stderr
); return EXIT_FAILURE;
}
return 0;
}
I2luY2x1ZGUgPHNpZ25hbC5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8aW50dHlwZXMuaD4KIApzdGF0aWMgdm9pZCBjYXRjaF9mdW5jdGlvbihpbnQgc2lnbmFsKSB7CiAgICBpbnQgZm9vOwogICAgcHJpbnRmKCJMb2NhbCB2YXJpYWJsZSBhZGRyZXNzOiAlIlBSSXhQVFIiXG4iLCAoaW50cHRyX3QpJmZvbyk7Cn0KIAppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgYmFyOwogICAgaWYgKHNpZ25hbChTSUdJTlQsIGNhdGNoX2Z1bmN0aW9uKSA9PSBTSUdfRVJSKSB7CiAgICAgICAgZnB1dHMoIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHNldHRpbmcgYSBzaWduYWwgaGFuZGxlci5cbiIsIHN0ZGVycik7CiAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgIH0KICAgIHByaW50ZigiTG9jYWwgdmFyaWFibGUgYWRkcmVzczogJSJQUkl4UFRSIlxuIiwgKGludHB0cl90KSZiYXIpOwogICAgcHV0cygiUmFpc2luZyB0aGUgaW50ZXJhY3RpdmUgYXR0ZW50aW9uIHNpZ25hbC4iKTsKICAgIGlmIChyYWlzZShTSUdJTlQpICE9IDApIHsKICAgICAgICBmcHV0cygiRXJyb3IgcmFpc2luZyB0aGUgc2lnbmFsLlxuIiwgc3RkZXJyKTsKICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgfQogICAgcHV0cygiRXhpdGluZy4iKTsKICAgIHJldHVybiAwOwp9