Differenze tra le versioni di "Alarm ()"

Da Gambas-it.org - Wikipedia.
 
Riga 19: Riga 19:
 
    
 
    
 
    
 
    
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
  <FONT color=Gray>' ''Gestione del segnale SIGALRM:''</font>
 
  <FONT color=Gray>' ''Gestione del segnale SIGALRM:''</font>
Riga 27: Riga 27:
 
   <FONT color=#B22222>alarm(3)</font>
 
   <FONT color=#B22222>alarm(3)</font>
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Private''' Function post_alarm(segno As Integer) <FONT color=Gray>' ''(funzione Callback)''</font>
+
  Private Function post_alarm(segno As Integer) <FONT color=Gray>' ''(funzione Callback)''</font>
 
    
 
    
 
   Print "\nRicevuto il segnale "; segno; " - Termine del programma"
 
   Print "\nRicevuto il segnale "; segno; " - Termine del programma"
Riga 36: Riga 36:
 
   Me.Close
 
   Me.Close
 
    
 
    
  '''End'''
+
  End
 
+
Vedi anche la pagina della Wiki relativa a [[Signal_()|signal()]].
 
 
 
 
----
 
Vedi anche la pagina relativa alla ''[[Signal_()|funzione signal()]]''
 

Versione attuale delle 18:47, 12 giu 2024

La funzione della libreria di C

unsigned int alarm(unsigned int seconds);

imposta un allarme a tempo per l'invio di un segnale SIGALRM entro tot secondi. Se il parametro della funzione è uguale a zero, non viene attivato nessun allarme e viene disabilitato l'eventuale allarme impostato precedentemente. La funzione alarm() ritorna il numero di secondi che mancano all'invio del segnale SIGALRM.


Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern alarm(secondi As Integer) As Integer In "libc:6"


Semplice esempio di uso in Gambas congiuntamente con la funzione signal():

Library "libc:6"

Private Const SIGALRM As Integer = 14

' unsigned int alarm(unsigned int seconds)
Private Extern alarm(secondi As Integer) As Integer
  
Private Extern signal(signum As Integer, sighandler As Pointer)
 
 
Public Sub Form_Open()

' Gestione del segnale SIGALRM:
  signal(SIGALRM, post_alarm)

' Attivazione del segnale di allarme dopo 3 secondi:
  alarm(3)

End


Private Function post_alarm(segno As Integer) ' (funzione Callback)
 
 Print "\nRicevuto il segnale "; segno; " - Termine del programma"
 
 Me.Close
 
End

Vedi anche la pagina della Wiki relativa a signal().