View Full Version : [linux] Catturare ctrl+C
ilsensine
18-09-2002, 09:45
Mi sono capitati sottomano vari articoli che spiegano come si fa, e visto che non mi è mai servito non li ho mai letti. Ora che mi serve, ovviamente non trovo più nulla :D
Qualcuno sa come fare?
Orco cane...lo sapevo...ora non me lo ricordo...
Azz...
Devi mettere una qualche funzione di callback che te lo gestisce...azzarola non me lo ricordo...
ilsensine
18-09-2002, 12:04
Murphy continua a divertirsi alle mie spalle, vedo :D
Guarda un po' sui segnali...dovresti catturare SIG_TERM...
ilsensine
18-09-2002, 14:14
Già lo catturo...
ilsensine
18-09-2002, 14:22
Ok risolto.
Non SIGTERM, ma SIGINT :D
Ah...ok...
Già che ci sei...come si faceva ?
ilsensine
18-09-2002, 15:45
Ci sono più modi, io ho usato questo (nb da compilare con -D_GNU_SOURCE):
void sighandler(int sig, siginfo_t *info, void *data) {
fprintf(stderr, "Segnale %d\n", sig);
}
int main() {
struct sigaction act;
act.sa_sigaction = sighandler;
sigemptyset(&act.sa_mask);
act.sa_flags = SA_SIGINFO;
sigaction(SIGINT, &act, NULL);
...
}
Vedi anche man sigaction
Ciao
Mi sa che era un altro metodo quello che avevo usato io...
Thanks :)
ilsensine
18-09-2002, 16:21
Sì si può usare anche signal(), che è molto più sbrigativa.
Originariamente inviato da ilsensine
[B]Sì si può usare anche signal(), che è molto più sbrigativa.
Mi sa che era proprio signal() :)
ilsensine
25-09-2002, 13:10
Questa è più difficile: catturare crtl+z.
ctrl+z invia un SIGSTOP, che non può essere bloccato. So però che si può cambiare l'azione di ctrl+z (al pari di come si può cambiare l'azione di ctrl+c - è questo che avevo letto, anche se alla fine intercettare SIGINT mi va ugualmente bene).
Sai nulla in proposito?
ilsensine
25-09-2002, 16:57
Ho paura che tocca litigare con termios.h...
Avevo scritto una cacchiata :)
Originariamente inviato da ilsensine
[B]Ho paura che tocca litigare con termios.h...
Comunque se non hai particolari esigenze di apprendimento e potresti evitare di "ammattirti" con segnali vari, puoi usare, sotto Linux, la libreria readline che ha apposite funzioni per il rimappaggio delle sequenze di tasti :D :D :D
ilsensine
27-09-2002, 13:42
Ho risolto il problema semplicemente...ignorandolo :D
L'applicazione che sto facendo deve girare per lo piò come demone, quindi chissene della tastiera ;)
Originariamente inviato da ilsensine
[B]Ho risolto il problema semplicemente...ignorandolo :D
L'applicazione che sto facendo deve girare per lo piò come demone, quindi chissene della tastiera ;)
:D :D :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.