-chiamata ad un'altra funzione vengono salvati nel contesto nello stack)
-torneranno al valore avuto al momento della chiamata di \func{setjmp}; per
-questo quando si vuole avere un comportamento coerente si può bloccare
-l'ottimizzazione che porta le variabili nei registri dichiarandole tutte come
-\direct{volatile}\footnote{la direttiva \direct{volatile} informa il
- compilatore che la variabile che è dichiarata può essere modificata, durante
- l'esecuzione del nostro, da altri programmi. Per questo motivo occorre dire
- al compilatore che non deve essere mai utilizzata l'ottimizzazione per cui
- quanto opportuno essa viene mantenuta in un registro, poiché in questo modo
- si perderebbero le eventuali modifiche fatte dagli altri programmi (che
- avvengono solo in una copia posta in memoria).}.
-
-
+chiamata ad un'altra funzione vengono salvati nel contesto nello
+\itindex{stack} \textit{stack}) torneranno al valore avuto al momento della
+chiamata di \func{setjmp}; per questo quando si vuole avere un comportamento
+coerente si può bloccare l'ottimizzazione che porta le variabili nei registri
+dichiarandole tutte come \direct{volatile}.\footnote{la direttiva
+ \direct{volatile} informa il compilatore che la variabile che è dichiarata
+ può essere modificata, durante l'esecuzione del nostro, da altri programmi.
+ Per questo motivo occorre dire al compilatore che non deve essere mai
+ utilizzata l'ottimizzazione per cui quanto opportuno essa viene mantenuta in
+ un registro, poiché in questo modo si perderebbero le eventuali modifiche
+ fatte dagli altri programmi (che avvengono solo in una copia posta in
+ memoria).}
+
+\index{salto~non-locale|)}
+
+
+
+% LocalWords: like exec kernel thread main ld linux static linker char envp Gb
+% LocalWords: sez POSIX exit system call cap abort shell diff errno stdlib int
+% LocalWords: SUCCESS FAILURE void atexit stream fclose unistd descriptor init
+% LocalWords: SIGCHLD wait function glibc SunOS arg argp execve fig high kb Mb
+% LocalWords: memory alpha swap table printf Unit MMU paging fault SIGSEGV BSS
+% LocalWords: multitasking segmentation text segment NULL Block Started Symbol
+% LocalWords: heap stack calling convention size malloc calloc realloc nmemb
+% LocalWords: ENOMEM ptr uClib cfree error leak smartpointers hook Dmalloc brk
+% LocalWords: Gray Watson Electric Fence Bruce Perens sbrk longjmp SUSv BSD ap
+% LocalWords: ptrdiff increment locking lock copy write capabilities IPC mlock
+% LocalWords: capability MEMLOCK limits getpagesize RLIMIT munlock sys const
+% LocalWords: addr len EINVAL EPERM mlockall munlockall flags l'OR CURRENT IFS
+% LocalWords: argc argv parsing questofile txt getopt optstring switch optarg
+% LocalWords: optind opterr optopt ForkTest POSIXLY CORRECT long options NdA
+% LocalWords: option parameter list environ PATH HOME XPG tab LOGNAME LANG PWD
+% LocalWords: TERM PAGER TMPDIR getenv name SVr setenv unsetenv putenv opz gcc
+% LocalWords: clearenv libc value overwrite string reference result argument
+% LocalWords: socket variadic ellipsis header stdarg execl self promoting last
+% LocalWords: float double short register type dest src extern setjmp jmp buf
+% LocalWords: env return if while Di page cdecl
+% LocalWords: environment