Ho registrato un gestore di segnale nel mio programma. Dopo aver ricevuto un segnale indesiderato (SIGABRT), chiamo "exit (-1)" nel gestore di segnale per uscire dal processo. Ma come notato in poche occasioni, chiama exit() ma non riesce a terminare il processo.Can exit() non riesce a terminare il processo?
Il problema è stato generato in modo casuale e sospetto fortemente sull'esecuzione di exit().
Possono esserci motivi o casi in cui l'exit() può non riuscire a terminare il processo.
Grazie.
Certamente consiglio di cercare un'altra causa per il bug di una funzione come "exit".Quasi sempre, quando pensi che ci sia un bug nel compilatore o nella libreria standard ecc., È il tuo errore che sta causando l'errore. – Shahbaz
@Shahbaz: Mandar non sta chiedendo un bug nell'implementazione, o suggerisce che ne esiste uno. La domanda è se è specificato "exit" per terminare sempre il programma, e la risposta è no (e specialmente non se viene chiamata da un gestore di segnale). –
Perché non impostare il gestore SIGABRT per uscire()? Qualunque altra cosa stiate facendo nel gestore del segnale, fateli in una chiamata atexit(). –