Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: MAFUS en 26 Abril 2018, 11:41 am



Título: setjmp y longjmp ¿Cuándo usarlas?
Publicado por: MAFUS en 26 Abril 2018, 11:41 am
Posiblemente las dos funciones más extrañas de C y con menor uso, según he visto. Por eso: a parte de simular excepciones ¿Qué uso se les podría dar a ese par de funciones? Por mi parte todavía no se me ha ocurrido ni presentado la ocasión de usarlas.


Título: Re: setjmp y longjmp ¿Cuándo usarlas?
Publicado por: srWhiteSkull en 26 Abril 2018, 13:45 pm
Algunas vez usaste un goto en C?  :rolleyes: pues eso...

También puedes usarlo para crear un bucle  ;)
Código
  1. ...
  2.    int contador=0;
  3.    setjmp(estado); // salvamos el offset del programa
  4.        printf("contador %d\n", contador);
  5.        if (contador++<10) longjmp(estado,1); // cargamos el offset
  6.  
  7.    printf("Fin del bucle ;) ");
  8.  
  9. ...


Título: Re: setjmp y longjmp ¿Cuándo usarlas?
Publicado por: MAFUS en 26 Abril 2018, 13:59 pm
El goto sí, bien usado simplifica las cosas. Pero el bicho este nunca.