Differenze tra le versioni di "Pause()"

Da Gambas-it.org - Wikipedia.
(Creata pagina con '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, bisog...')
 
Riga 9: Riga 9:
  
 
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"
 +
 
  Private Const SIGALRM As Integer = 14
 
  Private Const SIGALRM As Integer = 14
 
   
 
   
  Private Extern alarm(secondi As Integer) As Integer In "<FONT color=#B22222>libc:6</font>"
+
  Private Extern alarm(secondi As Integer) As Integer
 
    
 
    
  Private Extern signal(signum As Integer, sighandler As Pointer) In "libc:6"
+
  Private Extern signal(signum As Integer, sighandler As Pointer)
 
    
 
    
 
  <FONT color=Gray>' ''void pause(void)''</font>
 
  <FONT color=Gray>' ''void pause(void)''</font>
  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
 
   
 
   
 
   
 
   

Versione delle 18:30, 13 set 2014

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)
 
' void 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 riceve il segnale SIGALRM:
  pause()

  Print "Dopo 'pause()'"

End


Private Function post_alarm(segno As Integer)
 
  Print "Segnale SIGALRM giunto: funzione attivata."
 
End