How to use setjump (remember current position) and longjump (go back to position remembered) in C

1 Answer

0 votes
#include <stdio.h>
#include <setjmp.h>
 
jmp_buf jbuf;
 
void function() {
    printf("function()\n");
  
    // Jump to: setjmp(jbuf) in main()
    longjmp(jbuf, 1);
  
    printf("END function()\n");
}
  
int main()
{
    if (setjmp(jbuf)) {
        printf("setjmp(jbuf)\n");
    }
    else {
        printf("else\n");
        function();
    }
    
    return 0;
}


 
/*
run:
 
else
function()
setjmp(jbuf)
 
*/

 



answered May 18, 2018 by avibootz
edited May 22, 2024 by avibootz
...