linux c之<setjmp.h>使用总结

94 阅读1分钟

1、爆代码

 

#include<setjmp.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
 
void    f1(int, int, int, int);
void    f2(void);
 
static jmp_buf jmpbuffer;
static int globval;
int i = 4;
int main(void)
{
    int     autoval;
    register int   regival;
    volatile int   volaval;
    static int statval;
 
    globval = 1; autoval = 2; regival = 3; volaval = 4; statval = 5;
    i = 5;
    int result = setjmp(jmpbuffer);
    if (result != 0) {
        printf("result is %d\n", result);
        printf("after longjmp:\n");
        printf("i is %d\n", i);
        printf("globval = %d, autoval = %d, regival = %d,"
            " volaval = %d, statval = %d\n",
            globval, autoval, regival, volaval, statval);
        exit(0);
    }
    else 
    {
       puts("result == 0");
    }