Domanda

Credo che la domanda dice tutto, ma, cosa succede se qualcuno si chiude una console app C ++? Come in, fa clic sul "x" nell'angolo in alto. Ha immediatamente chiudere? Ha gettare una sorta di eccezione? E 'un comportamento indefinito?

È stato utile?

Soluzione

La chiusura di un c ++ console app con la "x" nell'angolo in alto genera CTRL_CLOSE_EVENT che si poteva prendere e di processo, se si imposta un gestore di controllo utilizzando il funzione SetConsoleCtrlHandler . Lì si poteva ignorare la stretta funzionalità ed eseguire qualunque cosa si voleva fare, e quindi opzionalmente comunque eseguire il comportamento predefinito.

Altri suggerimenti

Immagino che il processo di console appena viene ucciso senza tanti complimenti da parte del sistema operativo. Se si vuole intrappolare questo evento e fare qualcosa sembra che il funzione SetConsoleCtrlHandler è il modo per farlo.

Vedi anche:

Su altri sistemi Unix Linux e, la console viene eseguito come un processo separato. Come si chiude la shell, invia il segnale SIGHUP al processo attualmente attivo o processi che non vengono eseguite in background. Se il programmatore non gestirlo, il processo termina semplicemente. Lo stesso segnale viene inviato se si chiude la sessione SSH con un terminale e un processo attivo.

SIGBREAK è sollevata su Windows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top