view paper/sources/setjmp.c @ 10:3d9addf62d0b

organized repository.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Tue, 16 Feb 2010 14:35:36 +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;
}