Differenze tra le versioni di "Alarm ()"
Da Gambas-it.org - Wikipedia.
Riga 19: | Riga 19: | ||
− | + | 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 | |
− | + | 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 | |
− | + | Vedi anche la pagina della Wiki relativa a [[Signal_()|signal()]]. | |
− | |||
− | |||
− | |||
− | Vedi anche la pagina relativa |
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().