Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    C segnali, passare array all'handler

    Ragazzi volevo fare una domanda rigurado ai segnali in C:

    Supponiamo che voglio gestire il segnale SIGINT, appena questo viene catturato devo fare qualcosa in particolare es:

    codice:
    signal(SIGINT, handler);
    
    ....
    void handler(int segnale) {
          if (segnale==SIGINT) {
             fai qualcosa
    }
    Però , necessito di passare come argomento all'handler un array di interi, come posso fare dato che signal accetta una funzione che restituisce un void e accetta come unico parametro un intero

    codice:
    void (*signal(int signum, void (*sighandler)(int)))(int);
    Grazie anticipatamente
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Semplicemente, non puoi. Piazza il tuo array di interi in una variabile globale, che risulterà accessibile dalla funzione in questione.

    P.S.: occhio a non fare cose troppo elaborate in un signal handler... sono poche le funzioni "sicure" che puoi richiamare da un signal handler asincrono (e sono elencate in man 7 signal).
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.