#include <stdio.h>
#include <ucontext.h>
int g_val = 0;
ucontext_t context, *cp = &context;
void func(void) {
g_val = 1;
setcontext(cp);
}
int main(void) {
getcontext(cp);
if (!g_val) {
puts("getcontext() has been called");
func();
}
else {
puts("setcontext() has been called");
}
}
/*
run:
getcontext() has been called
setcontext() has been called
*/