Kill()

Da Gambas-it.org - Wikipedia.
Versione del 13 set 2014 alle 10:12 di Vuott (Discussione | contributi) (Creata pagina con 'La funzione della libreria di C int kill(int pid, int signal); è una chiamata di sistema che invia un segnale a un processo, inividuato dal suo PID e contenuto nel parametro...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

La funzione della libreria di C

int kill(int pid, int signal);

è una chiamata di sistema che invia un segnale a un processo, inividuato dal suo PID e contenuto nel parametro pid. Se pid è maggiore di zero, il segnale viene inviato al processo avente l'ID di processo uguale al parametro pid. Se pid è 0, il segnale viene inviato a tutti i processi, tranne i processi di sistema.


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 "kill" è omonima alla funzione di Gambas "Kill", 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 kill_C(command As String) As Integer In "libc:6" Exec "kill"


Semplice esempio di uso in Gambas:

Private Const SIGKILL As Integer = 9
Private hp As Process
 
' int kill(int pid, int signal)
Private Extern kill_C(command As String) As Integer In "libc:6" Exec "kill"


Public Sub ()

' Viene lanciato il programma editor di testo "Gedit":
  hp = Shell "gedit"
   
End


Public Sub Button1_Click()

' Chiudiamo il programma "gedit" mediante la funzione "kill()" di C:
  kill_C(hp.Handle + 1, SIGKILL)

  hp.Close

End