view sources/setjmp.c @ 7:8ef81ff8cb52

emended.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 13:10:57 +0900
parents
children
line wrap: on
line source

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

void jmpfunc(jmp_buf env);
int setfunc();
int flag=0;

int
main(int argc, char **argv)
{
    int rtn;
    flag=1;
    rtn = setfunc();
    printf("rtn = %d\n", rtn);
    return 0;
}

*/
int
setfunc()
{
    int a;
    jmp_buf env;

    if (a=setjmp(env)) {
        printf("it's continued! with value %d", a);
        return a;
    }

    jmpfunc(env);
    return 0;
}

void
jmpfunc(jmp_buf env)
{
    if (flag) {
        longjmp(env, 2);
    }
    return;
}