Differenze tra le versioni di "Raise()"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'La funzione della libreria di C int raise(int sig); è una chiamata di sistema che invia un segnale al processo in esecuzione (cioè al programma contenente tale funzione nel...')
 
 
Riga 7: Riga 7:
 
<BR>Dunque avremo ad esempio:
 
<BR>Dunque avremo ad esempio:
 
  Private <FONT color=#B22222>Extern raise_C</font>(command As String) As Integer In "<FONT color=#B22222>libc:6"</font> <FONT color=#B22222>'''Exec "raise"'''</font>
 
  Private <FONT color=#B22222>Extern raise_C</font>(command As String) As Integer In "<FONT color=#B22222>libc:6"</font> <FONT color=#B22222>'''Exec "raise"'''</font>
 
 
 
Semplice esempio di uso in Gambas:
 
Semplice esempio di uso in Gambas:
 
  Private Const SIGKILL As Integer = 9
 
  Private Const SIGKILL As Integer = 9
Riga 16: Riga 14:
 
    
 
    
 
   
 
   
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
 
  <FONT Color=gray>' ''Chiudiamo il programma mediante la funzione "raise()" di C:''</font>
 
  <FONT Color=gray>' ''Chiudiamo il programma mediante la funzione "raise()" di C:''</font>
  <FONT color=#B22222>raise_C(SIGKILL)</font>
+
  <FONT color=#B22222>raise_C(SIGKILL)</font>
 
    
 
    
  '''End'''
+
  End

Versione attuale delle 15:04, 13 giu 2024

La funzione della libreria di C

int raise(int sig);

è una chiamata di sistema che invia un segnale al processo in esecuzione (cioè al programma contenente tale funzione nel proprio codice). Quindi il programma invia un segnale a se stesso.


Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta. Da sottolineare che, poiché questa funzione esterna di C "raise" è omonima alla funzione di Gambas "Raise", bisognerà assegnarle un nome a piacere, ma si dovrà anche richiamare il suo vero nome con il comando Exec.
Dunque avremo ad esempio:

Private Extern raise_C(command As String) As Integer In "libc:6" Exec "raise"

Semplice esempio di uso in Gambas:

Private Const SIGKILL As Integer = 9

' int raise(int signal)
Private Extern raise_C(command As String) As Integer In "libc:6" Exec "raise"
 

Public Sub Button1_Click()

' Chiudiamo il programma mediante la funzione "raise()" di C:
 raise_C(SIGKILL)
 
End