Ciao a tutti,
vediamo se riesco a spiegare quello che vorrei fare
Ho un certo main, che semplificato potrebbe essere così:
int main(void){
int variabile1;
int variabile2;
void (*sighandler_ptr)(int);
sighandler_ptr = &funzioneA;
signal(SIGINT, sighandler_ptr);
...
quello che mi serve è che quando il processo intercetta CTRL-C e quindi passa alla funzione "funzioneA" per gestire il segnale, vorrei che da questa funzione sia possibile chiamare una funzione ("funzioneB" ad esempio) che prende come parametri &variabile1 e &varaibile2 dichiarate nel main.
void funzioneA(int signum){
...
funzioneB(&variabile1, &varaibile2);
....
}
quello che mi è venuto in mente è di dichiarare le variabili "variabile1" e "variabile2" fuori dal main, ma dovrei stravolgere tante cose e non credo che usare varaibili globali sia una buona soluzione (o sbaglio?)
Altra cosa che mi è venuta in mente è: è possibile controllare il valore di ritorno di funzioneA?Ho letto che ritorna "signum" in caso di successo e -1 in caso di errore, ma come posso fare per controllare questo valore nel main?
in modo da poter fare
]int main(void){
int variabile1;
int variabile2;
void (*sighandler_ptr)(int);
sighandler_ptr = &funzioneA;
signal(SIGINT, sighandler_ptr);
if(ritorno == 2){
funzioneB(&variabile1, &variabile2);
..