View Full Version : [c] header per gestori dei segnali
agosteeno
30-06-2010, 18:40
Salve a tutti, sto' facendo un programma abbastanza complesso per un progetto di un esame e volevo chiedere qualche consiglio. Dovendo gestire i segnali mi trovo nella situazione di dover scrivere i gestori per il loro trattamento. Siccome il programma consta di vari file diversi, mi chiedevo come organizzare questi gestori. Dovrei scrivere i gestori in un nuovo file e poi includere il suo header in tutti gli altri? In questo modo raccoglierei tutti i gestori in un solo posto e avrei solamente da fare questa include.
Della serie, creare gestoreSegnali.c, gestoreSegnali.h e includere in tutti gli altri file del progetto gestoreSegnali.h.
Non avendo mai fatto un progetto cosi' grosso sono un po' indeciso su queste scelte progettuali.
Potrebbe essere una buona idea ;)
agosteeno
30-06-2010, 18:57
grazie mille
agosteeno
30-06-2010, 19:23
Scusa se stresso ancora. Nei lucidi delle lezioni, quando ci sono esempi di gestori di segnali, la firma della funzione e' sempre static void gestore (int sig); Non capisco il motivo dello static. Infatti se dichiaro la funzione static in un altro file poi nn la posso usare al di fuori del file stesso, rendendo impossibile la soluzione che voglio usare. C'e' secondo voi qualche motivo per mantenere static i gestori?
Le funzioni static non sono visibili all'interno di altri moduli del sorgente. E' chiaro quindi che tu non le possa dichiarare static. Dal punto di vista dell'utilizzo, static o non static non dovrebbe cambiare niente.
agosteeno
01-07-2010, 12:50
Un ultima cosa che mi e' venuta in mente solo ora. Siccome i gestori li dovro' installare tramite la funzione sigaction() e attraverso una struttura, queste cose le posso fare una volta per tutte nel file che sarebbe gestoreSegnali.c? Altrimenti dove lo dovrei fare? Il progetto infatti consta di alcuni file, tra cui una libreria di funzioni per usare i socket, quindi naturalmente dovro' gestire i segnali. Il fatto e' che nn so' dove devo installare i gestori. Negli esempi della prof crea sempre uno stupidissimo main dove crea la struttura, installa il gestore dell'esempio e poi fa' qualcosa. Non credo pero' che questo lavoro debba essere fatto per ogni file che creo... Sono un po' confuso...
Il modo migliore è farti una funzione in gestoreSegnali.c che installa tutti i gestori e che chiamerai dal main ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.