Esiste un modo per disattivare (temporaneamente) l'effetto di interruzione di control-C in un eseguibile Haskell con run-in-a-shell?Posso disabilitare control-C?
Contesto: ho un piccolo esercizio che ho impostato ogni anno. È un gioco in cui gli studenti eseguono la chiusura lampo intorno a espressioni che attivano la riscrittura della corrispondenza del modello come applicabile, eseguendo in una finestra della shell utilizzando hncurses. Quando gli studenti hanno terminato l'ultimo puzzle, ottengono una password individuale di cui hanno bisogno per mandarmi. Essendo veterani di Windows e neofiti di Unix, e naturalmente (virtuosamente) pigri, tendono a selezionare la password e digitare control-C. Questo ha l'effetto non intenzionale di interrompere il programma e far scomparire la password. L'unico modo per recuperarlo è ripetere l'esercizio. Che crudele!
Mentre ci sono altri modi per aggirare il problema (ad es., Stampare un messaggio di avviso o scrivere la password in un file), sono curioso di sapere se c'è modo di disattivare il controllo-C.
Io so che sono passati alcuni anni, ma dovresti essere in grado di fare qualcosa di simile a ciò che Ingo suggerisce all'interno del tuo programma, ricablando il terminale dell'utente invece di installare un blocco di segnale. Questo mi sembra l'approccio più pulito. – dfeuer