“Setjump” and “Longjump” are defined in setjmp.h, a header file in C standard library.
- setjump(jmp_buf buf) : uses buf to remember the current position and returns 0.
- longjump(jmp_buf buf, i) : Go back to the place buf is pointing to and return i.
C
#include <setjmp.h>
#include <stdio.h>
jmp_buf buf;
void func()
{
printf ( "Welcome to GeeksforGeeks\n" );
longjmp (buf, 1);
printf ( "Geek2\n" );
}
int main()
{
if ( setjmp (buf))
printf ( "Geek3\n" );
else {
printf ( "Geek4\n" );
func();
}
return 0;
}
|
Output
Geek4
Welcome to GeeksforGeeks
Geek3
The main feature of these functions is to provide a way that deviates from standard call and return sequences. This is mainly used to implement exception handling in C. setjmp can be used like try (in languages like C++ and Java). The call to longjmp can be used like throw (Note that longjmp() transfers control to the point set by setjmp()).
Last Updated :
11 Mar, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...