|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Oct 2004
Messaggi: 11
|
[C] gestione segnali
Sto trattando la gestione dei segnali su un programma client-server.
Mi chiedo se l'approccio che sto usando va bene, dato che e' la prima volta che mi ci trovo davanti. Di seguito vi riporto il codice relativo alla gestione dei segnali. struct sigaction sign; /*struttura per la gestione dei segnali*/ sigset_t set; /*signal mask*/ /*maschero temporaneamente i segnali*/ if(sigfillset(&set)==-1){ /*pongo la nuova maschera tutta a 1, blocco tutti i segnali*/ perror("main: sigfillset"); exit(EXIT_FAILURE); } if(sigprocmask(SIG_SETMASK,&set,NULL)==-1) /*setto la nuova maschera*/ perror("main: sigprocmask"); /*inizio a gestire i segnali*/ memset(&sign,0,sizeof(sign)); sign.sa_handler=SigIntHandler; sign.sa_flags = SA_RESTART; if(sigaction(SIGINT,&sign,NULL)==-1) /*installo nuovo segnale SIGINT*/ perror("main: sigfillset"); sign.sa_handler = ResizeHandler; sign.sa_flags = SA_RESTART; if(sigaction(SIGWINCH, &sign, NULL)==-1) /*installo segnale SIGWINCH(resize win)*/ perror("main: sigfillset"); /*tolgo la maschera temporanea*/ if(sigemptyset(&set)==-1) perror("main:sigemptyset"); if(sigprocmask(SIG_SETMASK,&set,NULL)==-1) /*setto la nuova maschera*/ perror("main: sigprocmask"); quello che ho scritto ha senso o sbaglio qualcosa? grazie a chiunque mi risponda. |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Oct 2004
Messaggi: 11
|
Vi spiego cosa avevo in mente, magari cosi capite meglio...
Pongo a 1 tutta la maschera temporaneamente per bloccare tutti i segnali. In questo modo ora posso settare in un altra maschera i segnali che voglio gestire, essendo sicuro che in questo momento nona vrò interruzioni. Dopo levo la maschera temporanea e setto quella nuova che io mi sono creato. Ora mi chiedo, se il ragionamento è giusto. Se quello che ho scritto è corretto e se rispecchia il mio ragionamento. intanto UP ![]() Ultima modifica di noodles_83 : 28-06-2007 alle 12:38. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Oct 2004
Messaggi: 11
|
UPP
|
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Oct 2004
Messaggi: 11
|
nessuno mi da una mano a capire se quello che ho scritto va bene?
![]() |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Oct 2004
Messaggi: 11
|
up
![]() |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Oct 2004
Messaggi: 11
|
![]() per favore. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:28.