Differenze tra le versioni di "Pause()"
Da Gambas-it.org - Wikipedia.
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 6: | Riga 6: | ||
Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta: | Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta: | ||
Private <FONT color=#B22222>Extern pause</font>() As Integer In "<FONT color=#B22222>libc:6</font>" | Private <FONT color=#B22222>Extern pause</font>() As Integer In "<FONT color=#B22222>libc:6</font>" | ||
− | + | Semplice esempio di uso in Gambas congiuntamente con le funzioni "signal()" e "alarm()": | |
− | |||
− | Semplice esempio di uso in Gambas congiuntamente con le funzioni | ||
Library "libc:6" | Library "libc:6" | ||
Riga 17: | Riga 15: | ||
Private Extern signal(signum As Integer, sighandler As Pointer) | Private Extern signal(signum As Integer, sighandler As Pointer) | ||
− | <FONT color=Gray>' '' | + | <FONT color=Gray>' ''int pause(void)''</font> |
Private <FONT color=#B22222>Extern pause</font>() As Integer | Private <FONT color=#B22222>Extern pause</font>() As Integer | ||
− | + | Public Sub Main() | |
<FONT color=Gray>' ''Gestione del segnale SIGALRM:''</font> | <FONT color=Gray>' ''Gestione del segnale SIGALRM:''</font> | ||
− | + | signal(SIGALRM, post_alarm) | |
<FONT color=Gray>' ''Attivazione del segnale di allarme dopo 3 secondi:''</font> | <FONT color=Gray>' ''Attivazione del segnale di allarme dopo 3 secondi:''</font> | ||
− | + | alarm(3) | |
− | + | Print "Dopo 'alarm()' e prima di 'pause()" | |
<FONT color=Gray>' ''Resta in pausa, finche' il processo non riceve il segnale SIGALRM:''</font> | <FONT color=Gray>' ''Resta in pausa, finche' il processo non riceve il segnale SIGALRM:''</font> | ||
− | + | <FONT color=#B22222>pause()</font> | |
− | + | Print "Dopo 'pause()'" | |
− | + | End | |
− | + | Private Function post_alarm(segno As Integer) | |
− | + | Print "Segnale SIGALRM giunto: funzione attivata." | |
− | + | End |
Versione attuale delle 14:58, 15 giu 2024
La funzione della libreria di C
int pause(void);
pone in attesa il processo del programma fino a quando non sarà ricevuto un segnale.
Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:
Private Extern pause() As Integer In "libc:6"
Semplice esempio di uso in Gambas congiuntamente con le funzioni "signal()" e "alarm()":
Library "libc:6" Private Const SIGALRM As Integer = 14 Private Extern alarm(secondi As Integer) As Integer Private Extern signal(signum As Integer, sighandler As Pointer) ' int pause(void) Private Extern pause() As Integer Public Sub Main() ' Gestione del segnale SIGALRM: signal(SIGALRM, post_alarm) ' Attivazione del segnale di allarme dopo 3 secondi: alarm(3) Print "Dopo 'alarm()' e prima di 'pause()" ' Resta in pausa, finche' il processo non riceve il segnale SIGALRM: pause() Print "Dopo 'pause()'" End Private Function post_alarm(segno As Integer) Print "Segnale SIGALRM giunto: funzione attivata." End