.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2001 Andries Brouwer . .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" FIXME . There are a lot of other process termination actions that .\" could be listed on this page. See, for example, the list in the .\" POSIX exit(3p) page. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH exit 3 "2 maggio 2024" "Linux man\-pages 6.8" .SH NOME exit \- causa la conclusione normale del processo .SH LIBRERIA Libreria C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINTASSI .nf \fB#include \fP .P \fB[[noreturn]] void exit(int \fP\fIstatus\fP\fB);\fP .fi .SH DESCRIZIONE La funzione \fBexit\fP() provoca il termine normale dei processi e il byte meno significativo di \fIstatus\fP (i.e., \fIstatus & 0xFF\fP) è restituito al genitore (vedere \fBwait\fP(2)). .P Tutte le funzioni registrate con \fBatexit\fP(3) e \fBon_exit\fP(3) sono chiamate, in ordine inverso rispetto alla loro registrazione. (È possibile per una di queste funzioni usare \fBatexit\fP(3) o \fBon_exit\fP(3) per registrare una funzione aggiuntiva da eseguire durante il processo di uscita; la nuova registrazione è aggiunta all'inizio dell'elenco di funzioni che rimane da chiamare). Se una di queste funzioni non restituisce niente (per esempio, chiama \fB_exit\fP(2), o si termina da sola mandandosi un segnale), non viene chiamata nessuna delle funzioni rimanenti, e la successiva uscita in elaborazione (in particolare, lo svuotamento degli stream \fBstdio\fP(3)) viene abbandonata. Se una funzione è stata registrata più volte usando \fBatexit\fP(3) o \fBon_exit\fP(3), verrà chiamata tante volte quante sono le registrazioni. .P Tutti gli stream \fBstdio\fP(3) aperti sono svuotati e chiusi. I file creati con \fBtmpfile\fP(3) sono rimossi. .P Il C standard specifica due costanti, \fBEXIT_SUCCESS\fP e \fBEXIT_FAILURE\fP, che possono essere passate a \fBexit\fP() per indicare rispettivamente il successo o l'insuccesso di una chiusura. .SH "VALORE RESTITUITO" La funzione \fBexit\fP() non restituisce nulla. .SH ATTRIBUTI Per la spiegazione dei termini usati in questa sezione, vedere \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfaccia Attributo Valore T{ .na .nh \fBexit\fP() T} Thread safety MT\-Unsafe race:exit .TE .P La funzione \fBexit\fP() usa una variabile globale che non è protetta, quindi non è thread\-safe. .SH "CONFORME A" C11, POSIX.1\-2008. .SH STORIA C89, POSIX.1\-2001, SVr4, 4.3BSD. .SH NOTE Il comportamento è indefinito se una delle funzioni registrate usando \fBatexit\fP(3) e \fBon_exit\fP(3) chiama \fBexit\fP() o \fBlongjmp\fP(3). Da notare che una chiamata a \fBexecve\fP(2) rimuove le registrazioni create con \fBatexit\fP(3) e \fBon_exit\fP(3). .P L'uso di \fBEXIT_SUCCESS\fP e \fBEXIT_FAILURE\fP è leggermente più portabile (verso ambienti non\-Unix) dell'uso di 0 e di qualche valore diverso da zero come 1 o \-1. In particolare, VMS usa una convenzione differente. .P BSD ha tentato di standardizzare i codici di uscita (che anche alcune librerie C, come la libreria GNU C, hanno adottato); vedere il file \fI\fP. .P Dopo \fBexit\fP(), lo stato di uscita deve essere trasmesso al processo genitore. Ci sono tre casi: .IP \[bu] 3 Se il genitore ha impostato \fBSA_NOCLDWAIT\fP, o ha impostato l'handler \fBSIGCHLD\fP a \fBSIG_IGN\fP, lo stato è scartato e il processo figlio muore immediatamente. .IP \[bu] Se il genitore stava aspettando il processo figlio, gli viene notificato lo stato di uscita e il processo figlio muore immediatamente. .IP \[bu] Altrimenti, il processo figlio diviene un processo "zombie": la maggior parte delle risorse di processo vengono riciclate, ma uno slot contenente informazioni minimali sul processo figlio (stato di interruzione, statistiche sull'uso di risorse) è conservato nella tabella dei processi. Questo consente al genitore di usare susseguentemente \fBwaitpid\fP(2) (o simile) per avere informazioni sullo stato di interruzione del processo figlio; a questo punto lo slot del processo zombie viene rilasciato. .P .\" Se l'implementazione supporta il segnale \fBSIGCHLD\fP, questo segnale è inviato al genitore. Se il genitore ha impostato \fBSA_NOCLDWAIT\fP, non è definito se il segnale \fBSIGCHLD\fP è inviato. .SS "Segnali inviati ad altri processi" Se il processo in uscita è un leader di sessione e il suo terminale di controllo è il terminale di controllo della sessione, allora a ciascun processo nel gruppo dei processi in primo piano di questo terminale di controllo viene mandato un segnale \fBSIGHUP\fP, e il terminale è disassociato da questa sessione, permettendone l'acquisizione da parte di un nuovo processo controllante. .P Se l'uscita del processo fa sì che un gruppo di processo divenga orfano, e se un qualunque membro del nuovo gruppo del processo orfano viene fermato, allora verrà mandato un segnale \fBSIGHUP\fP seguito da un segnale \fBSIGCONT\fP a ciascun processo in questo gruppo di processo. Si veda \fBsetpgid\fP(2) per una spiegazione dei gruppi di processi orfani. .P Al di fuori dei casi di cui sopra, dove i processi segnalati possono essere figli del processo che viene interrotto, l'interruzione di un processo generalmente \fInon\fP provoca l'invio di un segnale al figlio di quel processo. Comunque, un processo può usare l'operazione \fBprctl\fP(2) \fBPR_SET_PDEATHSIG\fP per fare in modo che riceva un segnale se il suo genitore termina. .SH "VEDERE ANCHE" \fB_exit\fP(2), \fBget_robust_list\fP(2), \fBsetpgid\fP(2), \fBwait\fP(2), \fBatexit\fP(3), \fBon_exit\fP(3), \fBtmpfile\fP(3) .PP .SH TRADUZIONE La traduzione italiana di questa pagina di manuale è stata creata da Giulio Daprelà , Elisabetta Galli , Marco Curreli e Giuseppe Sacco . .PP Questa traduzione è documentazione libera; leggere la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Versione 3 .UE o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità. .PP Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a .MT pluto-ildp@lists.pluto.it .ME .