Alarm ()

Da Gambas-it.org - Wikipedia.
Versione del 12 giu 2024 alle 18:47 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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().