Pause(): differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
 
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 ''signal()'' e ''alarm()'':
  Library "libc:6"
  Library "libc:6"
   
   
Riga 21: Riga 19:
   
   
   
   
  '''Public''' Sub Main()
  Public Sub Main()
   
   
  <FONT color=Gray>' ''Gestione del segnale SIGALRM:''</font>
  <FONT color=Gray>' ''Gestione del segnale SIGALRM:''</font>
  signal(SIGALRM, post_alarm)
  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)
  alarm(3)
   
   
  Print "Dopo 'alarm()' e prima di 'pause()"
  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>
  <FONT color=#B22222>pause()</font>
   
   
  Print "Dopo 'pause()'"
  Print "Dopo 'pause()'"
   
   
  '''End'''
  End
   
   
   
   
  '''Private''' Function post_alarm(segno As Integer)
  Private Function post_alarm(segno As Integer)
    
    
  Print "Segnale SIGALRM giunto: funzione attivata."
  Print "Segnale SIGALRM giunto: funzione attivata."
    
    
  '''End'''
  End

Versione attuale delle 15: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