Citat:
Ursprungligen postat av
GoldNux
Om jag vill stänga ner min konsol applikation genom att hålla ner ctrl + c
Hur gör jag det? Förklara gärna vad som sker då jag vill förstå.
Det jag hittat när jag googlat har varit något förvirrande, vet inte riktigt hur jag ska placera in det i min kod.
Tack.
Kort svar: det behöver du inte. Det är en funktion i konsollen/terminalen. Så här fungerar det i *nix:
Såvida terminalen inte har satts i
raw mode, skickar den signalen SIGINT till programmet när den får Ctrl-C (tecknet med ASCII-värde 3). Har du då inte registrerat en egen hanterare för den med signal() från standardbiblioteket, körs default-hanteraren och den avbryter programmet. Samma sak kan uppnås med kommandot
kill, som trots sitt namn är till för att skicka valfri signal till valfri process.
Registrera hanterare om du behöver städa upp innan programmet plötsligt avbryts. Att lämna en gammal highscorefil halvskriven/-uppdaterad och i invalid-format är t.ex. olämpligt. Program som buggar ur och vägrar att dö för att de har registrerat en hanterare som väntar på något annat i programmet (eller hanteraren kanske t.o.m. är buggig själv) går alltid att avbryta med SIGKILL, med det berömda värdet 9. Den gör samma sak med skillnaden att program inte kan registrera en egen hanterare för den.
killall -9