gestione ordinaria è in un'altra occorre usare quello che viene chiamato un
\textsl{salto non-locale}. Il caso classico in cui si ha questa necessità,
citato sia da \cite{APUE} che da da \cite{glibc}, è quello di un programma nel
gestione ordinaria è in un'altra occorre usare quello che viene chiamato un
\textsl{salto non-locale}. Il caso classico in cui si ha questa necessità,
citato sia da \cite{APUE} che da da \cite{glibc}, è quello di un programma nel
attraverso una serie di funzioni di analisi una scansione dei contenuti da cui
ottenere le indicazioni per l'esecuzione di opportune operazioni.
attraverso una serie di funzioni di analisi una scansione dei contenuti da cui
ottenere le indicazioni per l'esecuzione di opportune operazioni.
Quando viene eseguita direttamente la funzione ritorna sempre zero, un valore
diverso da zero viene restituito solo quando il ritorno è dovuto ad una
Quando viene eseguita direttamente la funzione ritorna sempre zero, un valore
diverso da zero viene restituito solo quando il ritorno è dovuto ad una
il contesto salvato in \param{env} viene invalidato se la routine che ha
chiamato \func{setjmp} ritorna, nel qual caso l'uso di \func{longjmp} può
comportare conseguenze imprevedibili (e di norma fatali per il processo).
il contesto salvato in \param{env} viene invalidato se la routine che ha
chiamato \func{setjmp} ritorna, nel qual caso l'uso di \func{longjmp} può
comportare conseguenze imprevedibili (e di norma fatali per il processo).
comunque restituito 1 al suo posto.
In sostanza un \func{longjmp} è analogo ad un \code{return}, solo che invece
comunque restituito 1 al suo posto.
In sostanza un \func{longjmp} è analogo ad un \code{return}, solo che invece
ritorna alla posizione della relativa \func{setjmp}, ed il ritorno può essere
effettuato anche attraverso diversi livelli di funzioni annidate.
ritorna alla posizione della relativa \func{setjmp}, ed il ritorno può essere
effettuato anche attraverso diversi livelli di funzioni annidate.