#include <setjmp.h>
#include <stdio.h>

jmp_buf x;

void f()
{
  longjmp(x,5);
}

int main()
{
  int i = 0;

  if ((i = setjmp(x)) == 0)
  {
    f();
  }
  else
  {
    switch(i)
    {
      case  1: /* ... */ break;
      case  2: /* ... */ break;
      default: fprintf(stdout, "error code = %d\n", i); break;
    }
  }
  return 0;
}