Differenze tra le versioni di "Kill()"
(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...') |
|||
Riga 17: | Riga 17: | ||
− | '''Public''' Sub () | + | '''Public''' Sub Form_Open() |
<FONT Color=gray>' ''Viene lanciato il programma editor di testo "Gedit":''</font> | <FONT Color=gray>' ''Viene lanciato il programma editor di testo "Gedit":''</font> |
Versione delle 11:35, 13 set 2014
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 Form_Open() ' 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